端口映射,也稱為端口轉發(fā)或虛擬服務器,不同品牌的寬帶路由器可能會采用不同的名稱。如果內(nèi)網(wǎng)中的一臺計算機需要通過因特網(wǎng)上提供服務或者接收數(shù)據(jù),則必須進行端口映射。
端口映射可以分為動態(tài)和靜態(tài)兩種類型。動態(tài)端口映射的過程如下:內(nèi)網(wǎng)中的一臺計算機訪問外部網(wǎng)站時,會向NAT網(wǎng)關發(fā)送數(shù)據(jù)包,該數(shù)據(jù)包的頭部包含了目標網(wǎng)站的IP地址、端口號以及自身的IP地址和端口號。NAT網(wǎng)關會用自身的公網(wǎng)IP地址和一個尚未使用的端口號替換原始的內(nèi)網(wǎng)IP地址和端口號,并記錄下這種映射關系以供后續(xù)的數(shù)據(jù)包轉發(fā)使用。之后,NAT網(wǎng)關將數(shù)據(jù)包發(fā)送給目標網(wǎng)站。當網(wǎng)站接收到數(shù)據(jù)后作出回應時,會將數(shù)據(jù)發(fā)送至NAT網(wǎng)關所使用的那個未使用的端口號,接著NAT網(wǎng)關再將數(shù)據(jù)轉發(fā)給內(nèi)網(wǎng)中的那臺計算機,從而實現(xiàn)了內(nèi)網(wǎng)與公網(wǎng)之間的通信。當連接結束時,NAT網(wǎng)關會釋放之前分配出去的端口號,以便后續(xù)的新連接能夠再次利用這些端口號。實際上,動態(tài)端口映射就是NAT網(wǎng)關的工作機制。
靜態(tài)端口映射則是指在NAT網(wǎng)關上開放一個固定的端口號,并指定該端口號接收到的數(shù)據(jù)應當被轉發(fā)到內(nèi)網(wǎng)中的某個特定IP地址及其端口號上。無論是否存在活動連接,這種映射關系都將始終存在。這樣就可以使外部網(wǎng)絡主動訪問內(nèi)網(wǎng)中的某臺計算機。
打個比方,端口映射的過程就好像是這樣的:你的家位于一個小區(qū)的B棟2410室,你的朋友想要找你,但是到了小區(qū)門口卻不知道你住在哪一層哪一戶,于是他就詢問門衛(wèi),門衛(wèi)禮貌地告知了他具體的門牌號碼,因此你的朋友順利地找到了你家。這便是外部網(wǎng)絡通過端口映射訪問內(nèi)部網(wǎng)絡的一個形象化比喻。