在IP地址和子網掩碼中說了IP地址,在網卡的真正硬件地址mac 中說了MAC地址,在端口是個什么鬼? 中說了端口。但實際上我們大部分時候更關心的是IP地址和端口。至少在今天我要說的端口映射中是用到了IP地址和端口。為什么我們要端口映射?端口映射在什么情況下用?

端口映射中的端口就是邏輯層面的端口而非路由器,交換機上的端口,其實在大部分的情況下我們所說的端口都是指這種邏輯層面的端口號。通俗的說端口映射就是把其中一個端口號和另一個端號聯系起來,記錄下來,看到這個端口號就知道指的是經過變換后的端口號。這就像指鹿為馬一樣。當然這里的指鹿為馬和趙高的指鹿為馬有本質的不同。

我們之所以要端口映射其實是因為NAT技術。NAT下的保安和張三 中說到NAT技術就像一個小區,只允許里面的人主動聯系外面 的人,而不允許外面的人主動聯系里面的人。這在一定程度上保護了內部的安全,同時也帶來一個問題,如果外面的人要主動的訪問控制處于NAT里主機則無法實現。比如實際中有遠程控制的需求。這個時候我們就需要端口映射這樣的操作用來把目的端口是指定端口號的數據包和指定的主機端口號聯系起來以方便遠程控制這樣的需求。

路由器
當你有從互聯網要主動訪問處于NAT(路由器)后面的主機這樣的需求時你就可以做端口映射。端口映射通常是做在進入內部網絡的匯聚設備上比如路由器。在路由器中有叫做虛擬主機或虛擬服務器也有直接叫端口映射的,他們統一的類別是轉發規則。這也說明了實際上端口映射就是為了特殊轉發存在的。

端口映射
操作方面大同小異。首先進入路由器的管理后面界面,找到虛擬主機或者轉發規則下的虛擬服務器或者端口映射。

端口映射
在上圖中帶有*號的是必填的。其中指定出口在一般的路由器默認都是WAN或是PPPOE撥號口。協議根據自己的需求如果不知道可以選擇TCP+UDP或者ALL。外部端口就是從互聯網上進來的目的端口,比如我們用瀏覽器打開網頁默認的目的端口就是80或都443。內部IP是指提供服務的內部網絡的主機地址比如有一個IP地址是192.168.1.100的主機提供網頁服務那么就是這個地址。內部端口就是指這個提供服務的主機的開放端口,比如網頁服務默認是80如果有更改需要填寫更改后的端口。(有一些路由器可以沒有內部端口這個填寫項)

上面的意思就是說路由器檢測到了從WAN口主動進來的數據包里的目的端口號是主人指定的外部端口的話,把外部端口更改為內部端口(如果沒有就不用更改了)然后再交給內部IP為192.168.1.100的主機處理,至于是死是活不關路由器的事了。