什么是 NAT
NAT(Network Address Translation,网络地址转换),简单说,就是把局域网中的机器和外部进行通信时,映射公网 IP 和端口的过程。
比如你在局域网中的地址是 192.168.1.100,你的公网地址是 119.125.123.12,当你和异地的朋友通信时,你发出的信息是通过你的公网地址发出去的,为了区分是局域网中的哪个机器,通常会分配一个端口,比如你发出的信息时,给你分配的公网地址和端口是:119.125.123.12:8223,那么当互联网上的任何人往上面地址发送信息,都会发到你机器上(前提是没设置通信限制,下面有讲解,这里说的是完全锥形 NAT)
NAT 的分类
电信级的网关都是“对称 NAT”,比如移动、连通、电信
对称 NAT
简单说就是客户机向每个服务器发送信息,都会有一个新的公网端口,比如你向两个服务器通信,你和第一个服务器通信时给你分配的公网地址和端口是:119.125.123.12:8223,和第二个通信时分配的是 119.125.123.12:8224,只要公网 IP 一样,端口不一样,这就是对称 NAT。
完全锥形 NAT
这就简单了,就是都能通过给你分配的公网 IP 和端口和你通信。加上限制就是限制锥形 NAT
判断顺序
- 先判断是不是 完全锥形 NAT
- 再判断是不是 IP 限制锥形 NAT