1. 程式人生 > >內網訪問外網以及外網訪問內網的原理

內網訪問外網以及外網訪問內網的原理

假如設A 和 B 的區域網 IP 相同(192.168.31.11),當他們同時訪問百度伺服器的時候,百度伺服器如何區分哪個是 A,哪個是 B 呢?

解決方案:埠對映

什麼是埠對映?

埠對映是 NAT 的一種,它將外網主機的 IP 地址的一個埠對映到內網中一臺機器,提供相應的服務。當用戶訪問該 IP 的這個埠時,伺服器自動將請求對映到對應區域網內部的機器上。
現在市場上的家庭路由器都具備 NAT 功能,也可以實現埠對映。下圖為小米路由器的埠對映設定圖:

這裡寫圖片描述

我們平時經過路由器,通過寬頻,最終去到運營商那邊,資料是從運營商出去,最終資料是回到運營商那邊,運營商再把資料傳送到使用者的電腦。
路由器,至少有兩個埠:WAN 口和 LAN 口。
WAN:接外部 IP 地址用,通常指的是出口,轉發來自內部 LAN 介面的 IP 資料包,這個口的 IP 是唯一的。LAN:接內部 IP 地址用,LAN 內部是交換機。


這裡,我們簡化這個過程,我們把運營商當做一個 NAT 裝置。

這裡寫圖片描述

A 電腦的 IP 是區域網 IP(192.168.31.11),這個 IP(192.168.31.11)是從路由器的 lan口分配的。
當我們上百度的時候,經過路由器的 wan口,進行相應的IP、埠轉化:192.168.31.11:80 -> 10.221.0.24:8080,所以,從 wan口出去的地址為:10.221.0.24:8080。

這裡寫圖片描述

最後,經過運營商,運營商那邊會做相應的埠對映(而且是動態埠對映),子網 IP(10.221.0.24:8080)轉化為公網IP(128.0.0.1:8888),通過這個公網 IP 去訪問百度伺服器

這裡寫圖片描述

同理,B 的過程也是一樣。通過這樣的層層埠對映,最終保證地址(IP + 埠)的唯一性。A 和 B 訪問百度伺服器,儘管它們的區域網 IP 是一樣的,但是最終它們訪問百度的地址(IP + 埠)是唯一的,所以,百度伺服器回覆時,原路返回時能夠區分到底給誰回。

如何讓外網能夠訪問自己寫的網路程式(伺服器)
首先,我們需要在運營商那邊申請(租用)一個公有 IP (長城寬頻一年需要 2000 元左右),假如這個公有 IP 為:128.0.0.123。
假如,我們寫的伺服器如下:

這裡寫圖片描述

接著,找個 NAT 裝置進行相應的埠對映,家庭路由器都有這個功能。這裡以小米路由器為例:

這裡寫圖片描述

對映關係如下:

這裡寫圖片描述

最後,其他人寫客戶端程式時(電腦能上外網),只要指定目的 IP 地址為 128.0.0.123,埠為 8888,通過這個地址,就能找到192.168.31.248:8080,因為這兩者已經建立好對映,如上圖,這樣,我們的伺服器就能收到資料。

相關推薦

Android源碼開發筆記 軟鍵盤與置物理鍵盤共存以及接藍牙鍵盤不共存邏輯

icon eva boolean 功能實現 小鍵盤 nokey top apps 需求 需求1: android設備自帶九鍵的小鍵盤,此時小鍵盤被識別為HW Keyboard,默認與軟鍵盤不能共存,需要使軟鍵盤與物理鍵盤共存。 實現: 在網上找的別人總結的Android5.

訪問以及訪問原理

假如設A 和 B 的區域網 IP 相同(192.168.31.11),當他們同時訪問百度伺服器的時候,百度伺服器如何區分哪個是 A,哪個是 B 呢? 解決方案:埠對映 什麼是埠對映? 埠對映是 NAT 的一種,它將外網主機的 IP 地址的一個埠對映到內網中

service幾種訪問型別( LoadBalancer 訪問,ClusterIP k8s叢集訪問,LoadBalancer VPC負載均衡)

一、叢集外訪問(負載均衡) kind: ServiceapiVersion: v1 spec:     ports:     - protocol: TCP       port: 4341       targetPort: 8080       nodePort: 30875

window系統的雙絡卡配置 同時連線 公司以及(域名可解析)

記錄一下雙網絡卡的配置 電腦有兩張網絡卡,無線和有線 我現在是使用有線去連線公司內網,無線連線外網; 公司內網的ip格式:  10.*.*.* 內網網路掩碼:         255.255.255.0 內網閘道器地址:

IP和IP的區別以及作用

IP分類 A類:1.0.0.0-127.255.255.255 B類:128.0.0.0-191.255.255.255 C類:192.0.0.0-223.255.255.255 D類和E類被保留,不能使用。 D 類地址用於在IP網路中的 組播

一個用戶端口映射進入之後訪問不是ip而是ipsec分布ip的問題

而是 訪問 均衡 網站服務 會有 端口 過去的 ips 出口 西北院那個我們準備用ipsec方式讓他們網站服務器以我們這邊的ipv6地址對外發布出去的。 首先我們ispec隧道是建立起來了的。 在我們出口負載均衡設備也能通他們的網站服務器。 但是映射會有問題。 譬如你先用i

使用ngrok將映射出去讓可以訪問的方法

一:軟體的下載ngrok的下載地址:https://pan.baidu.com/s/1maOHIznSbm-RVvV88bL87g 密碼:wfnk二:安裝的步驟1:賬號的註冊:https://www.ngrok.cc/  1.1:點選註冊1.2:登入1.3:點選隧道管理1.4

服務地址對映為訪問地址

下載完ngrok之後,就可以簡單的使用了,它有各作業系統版本,我這裡是windows的. 1、win+R -->進入命令列。 2、cd -->轉到ngrok.exe 所在資料夾

伺服器配置DDNS實現固定域名訪問

問題描述 在外網訪問區域網內的伺服器時,若外網路由器IP非固定,將導致服務因IP地址變化而經常無法訪問。 前提條件 1、內網伺服器可以聯外網 2、外網接入路由器已開通地址埠對映 3、採用PubYun的動態域名服務 步驟簡述 1、註冊PubY

在內中安裝軟件(不能連接

-- packages /var/ 自己 配置 內容 pca ges add 一 :制作鏡像光盤 二: /etc/yum.conf 這裏配置文件需要更改 keepcache=0 ==》 keepcache=1 (這裏是更改為“1” 是讓我們保存自己安裝所需要的依

阿里雲無法從訪問某埠-埠被禁止訪問

一、新購買的阿里雲伺服器,配置好後,localhost是可以正常訪問專案的,但是無法從外網訪問,這就說明埠被禁止訪問了。解決此問題的方法如下: 1、登入阿里雲的管理控制檯,找到例項: 2、在例項右邊的操作選項裡,選擇“更多”,選擇“安全組配置”: 3、進入“安全組配置”後,點

如何用Apache James把E-mail從(內部區域網)發到

        如何用Apache James把E-mail從內網(內部區域網)發到外網   轉載:http://www.west.cn/www/info/63095-1.htm 第一步. 得到DNS, 在windows上可通過ipcon

虛擬機器CentOS7配置靜態Ip以及DNS

1.vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static DEFROUTE=yes NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.66.130 NE

juniper srx 240 cluster 伺服器埠釋出到配置例項

========================================================================================================================-----------------------------------

【centos7】設定Redis訪問,通過java程式遠端訪問Redis

一、設定Redis外網可訪問 1、開放埠6379 firewall-cmd --zone=public --add-port=6379/tcp --permanent 我這裡的警告資訊是,埠6379已開通。 檢視開放埠:firewall-cmd --zone=public -

同時連線閘道器和閘道器

同時使用內外網: 先把內外網同時連線,命令: ipconfig檢視自己的內網閘道器和外網閘道器地址 命令列管理員身份執行: route delete 0.0.0.0 route delete 10.0.0.0  route

VM連線三種方式以及使用cecureCRT連線Linux.

安裝完VMware workstation之後,網路連線裡會多出兩個虛擬網絡卡: VMware Network Adapter VMnet1和VMware NetworkAdapter VMn

利用雲伺服器通過OpenVPN將的地址釋出到

一、目的: 通過雲伺服器的外網地址,將沒有外網的伺服器的埠地址轉發到外網,使其能夠通過外網進行訪問。 二、原理:   1.虛擬專用網VPN   虛擬專用網VPN(virt ual private network)是在公共網路中建立的安全網路連線,這個網路連線和普通意義上的網路連線不同之處在於,它採用了專有的隧

iptables案例:iptables把web服務對映到

iptables把內網web服務對映到外網 背景和原理 左邊為機器A,右邊為機器B。B有兩塊網絡卡,一塊和A在一個區域網,一塊可以連外網。A外網不通。 下面希望外網的使用者可以訪問A機器提供的

centos7可以ping通,但ping不同

首先檢查新增DNS是否正常,如不存在則新增dns: [[email protected]]# vim /etc/resolv.conf nameserver 114.114.114.1