端口映射是 NAT 的一种,功能是把在公网的地址转翻译成私有地址, 采用路由方式的 ADSL 宽带路由器拥有一个动态或固定的公网 IP,ADSL 直接接在 HUB 或交换机上,所有的电脑共享上网。

一、什么是端口映射

端口映射:端口映射就是将内网中的主机的一个端口映射到外网主机的一个端口,提供相应的服务。当用户访问外网 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。

比如:

我们在内网中有一台 Web 服务器,但是外网中的用户是没有办法直接访问该服务器的。于是我们可以在路由器上设置一个端口映射,只要外网用户访问路由器 IP 的 80 端口,那么路由器会把自动把流量转到内网 Web 服务器的 80 端口上。并且,在路由器上还存在一个 Session,当内网服务器返回数据给路由器时,路由器能准确的将消息发送给外网请求用户的主机。在这过程中,路由器充当了一个反向代理的作用,他保护了内网中主机的安全。

§ 端口映射 - 图1

二、什么是端口转发

端口转发:端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。

比如,我们现在在内网中,是没有办法直接访问外网的。但是我们可以通过路由器的 NAT 方式访问外网。假如我们内网现在有 100 台主机,那么我们现在都是通过路由器的这一个公网 IP 和外网通信的。那么,当互联网上的消息发送回来时,路由器是怎么知道这个消息是给他的,而另外消息是给你的呢?这就要我们的 IP 地址和路由器的端口进行绑定了,这时,在路由器中就会有一个内网 IP 和路由器端口对应的一张表。当路由器的 10000 端口收到消息时,就知道把消息发送给他,而当 20000 端口收到消息时,就知道把消息发送给你。这就是端口转发,其转发一个端口收到的流量,给另一个主机。

§ 端口映射 - 图2

三、端口映射和端口转发的区别

端口映射:就是在大门口给每个人(内网主机)装个柜子,送快递的直接按收件人名字,把快递放到对应的柜子里面。

端口转发:转发的重点在“转”上面。送快递的过来,把所有快递都交给门口保安(路由器),保安再根据每件快递上的收件人(内网主机)来分发。