內網訪問外網以及外網訪問內網的原理
假如設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