什么是 NAT?

NAT(网络地址转换)让多台设备共享一个公网 IP 地址:内网设备使用私有地址,出口处由路由器转换成公网地址。它是 IPv4 地址不足时代的产物,家用路由器的上网方式就是 NAT。

NAT(Network Address Translation,网络地址转换)解决的是 IPv4 地址不够用的问题。第 17 期介绍过,IPv4 只有约 43 亿个地址,早已分配完毕。NAT 的做法是:内网设备使用一套私有地址(如 192.168.x.x),只有出口路由器持有一个公网 IP;内网设备上网时,路由器把请求的源地址改写成自己的公网地址,返回的数据再转发回对应的内网设备。

家用路由器就是典型的 NAT 设备。一台路由器下面连着手机、电脑、电视等多个设备,它们各自的 IP 是内网私有地址,对外上网时都通过路由器的一个公网地址。路由器用端口号区分不同设备的连接,把数据正确送回各个设备。

NAT 节省了公网地址,也带来了一些副作用:外部设备默认无法主动连接内网设备,需要路由器做端口映射。第 17 期提到 IPv6 地址数量充足,理论上可以摆脱 NAT,但在当前双栈运行的现实里,NAT 仍然是网络中最常见的机制之一。