端口映射,也称为端口转发或虚拟服务器,不同品牌的宽带路由器可能会采用不同的名称。如果内网中的一台计算机需要通过因特网上提供服务或者接收数据,则必须进行端口映射。
端口映射可以分为动态和静态两种类型。动态端口映射的过程如下:内网中的一台计算机访问外部网站时,会向NAT网关发送数据包,该数据包的头部包含了目标网站的IP地址、端口号以及自身的IP地址和端口号。NAT网关会用自身的公网IP地址和一个尚未使用的端口号替换原始的内网IP地址和端口号,并记录下这种映射关系以供后续的数据包转发使用。之后,NAT网关将数据包发送给目标网站。当网站接收到数据后作出回应时,会将数据发送至NAT网关所使用的那个未使用的端口号,接着NAT网关再将数据转发给内网中的那台计算机,从而实现了内网与公网之间的通信。当连接结束时,NAT网关会释放之前分配出去的端口号,以便后续的新连接能够再次利用这些端口号。实际上,动态端口映射就是NAT网关的工作机制。
静态端口映射则是指在NAT网关上开放一个固定的端口号,并指定该端口号接收到的数据应当被转发到内网中的某个特定IP地址及其端口号上。无论是否存在活动连接,这种映射关系都将始终存在。这样就可以使外部网络主动访问内网中的某台计算机。
打个比方,端口映射的过程就好像是这样的:你的家位于一个小区的B栋2410室,你的朋友想要找你,但是到了小区门口却不知道你住在哪一层哪一户,于是他就询问门卫,门卫礼貌地告知了他具体的门牌号码,因此你的朋友顺利地找到了你家。这便是外部网络通过端口映射访问内部网络的一个形象化比喻。