端口映射
是指將一台主機的內網(LAN)IP地址映射成一個公網(WAN)IP地址,當用戶訪問提供映射端口主機的某個端口時,服務器將請求轉移到本地局域網內部提供這種特定服務的主機;利用端口映射功能還可以將一台外網IP地址機器的多個端口映射到內網不同機器上的不同端口。
舉個栗子:
我們在內網中有一台Web服務器,但是外網中的用戶是沒有辦法直接訪問該服務器的。於是我們可以在路由器上設置一個端口映射,只要外網用戶訪問路由器ip的80端口,那么路由器會把自動把流量轉到內網Web服務器的80端口上。並且,在路由器上還存在一個Session,當內網服務器返回數據給路由器時,路由器能准確的將消息發送給外網請求用戶的主機。在這過程中,路由器充當了一個反向代理的作用,他保護了內網中主機的安全。
端口轉發(Port forwarding)
有時被叫做隧道,是安全殼(SSH) 為網絡安全通信使用的一種方法。
舉個栗子:
假如我們內網現在有100台主機,那么我們現在都是通過路由器的這一個公網IP和外網通信的。那么,當互聯網上的消息發送回來時,路由器是怎么知道這個消息是給他的,而另外消息是給你的呢?這就要我們的ip地址和路由器的端口進行綁定了,這時,在路由器中就會有一個內網ip和路由器端口對應的一張表。當路由器的10000端口收到消息時,就知道把消息發送給他,而當20000端口收到消息時,就知道把消息發送給你。這就是端口轉發,其轉發一個端口收到的流量,給另一個主機。
兩者的區別:
端口轉發,轉發的重點在“轉”上面。送快遞的過來,把所有快遞都交給門口保安,保安再根據每件快遞上的收件人來分發。
端口映射就是在大門口給每個人裝個櫃子,送快遞的直接按收件人名字,把快遞放到對應的櫃子里面。
端口映射,端口轉發 兩個詞沒有作為嚴格的計算機術語定義。事實上很多人都是混着叫的,比如Wikipedia 就將port forwarding和port mapping作為一個術語解釋了。
回到這兩個詞描述的場景或問題來看,本質上是在兩個網絡傳輸層 地址(ip:port)上建立通道關系。通道建立的手段有多種,路由器上的那種NAT或者服務器上的路由功能(iptable),是將傳輸地址做了簡單的翻譯轉換。很多認為這兩個詞是不同意義的人可能覺得這種場景是端口映射。
ssh是一款很牛的安全軟件,具有安全隧道的功能。利用ssh的安全隧道建立的兩個傳輸層地址的通道的方式,很多認為這兩個詞是不同意義的人叫這種方法為端口轉發,(也有人叫端口映射的)。當然這種方式確實比較安全些,也有多種形式(本地/遠程/動態),可以看這篇文章https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/
我個人覺得還是看上下文語境,反正達到的目的是一個意思
2.
端口映射、端口轉發、內網穿透:目的都是一樣的,實現跨網的訪問連接。
端口映射一般指有公網IP的路由器上的,完全走本地公網帶寬。端口轉發可以是三方公網服務器的帶寬轉發,也可以自己公網服務器搭建。內網穿透如nat123內網映射,其80穿透是本地公網加速不限速的網站文件完全走本地帶寬。
(轉)鏈接:https://www.zhihu.com/question/52943496/answer/1639590991