先打个比方:小区和门卫

想象你住在一个小区里。快递单上写的是小区的地址“幸福路 88 号”,全城只有这一个;小区里面,每户还有自己的楼号和房号,比如“3 栋 502”。“3 栋 502”只在小区内部有意义,隔壁小区也有一个“3 栋 502”,谁也不会弄混。

网络里也是这样:

  • 公网 IP 就是“幸福路 88 号”,在整个互联网上独一无二,由运营商分配,全世界都能看到。
  • 内网 IP(也叫私有 IP、局域网 IP)就是“3 栋 502”,只在你家或你们公司的网络内部使用,由路由器分配,出了门就不认。
  • 路由器就是小区门口的门卫,负责在两套地址之间来回转送。

哪些地址是内网地址

为了让每个家庭、每家公司都能放心地自己编号,互联网的标准文件 RFC 1918 专门划出了三段地址,规定它们只能在内部网络使用,不会出现在公网上:

表 3-1 三段私有地址
写法地址范围常见场景
10.0.0.0/810.0.0.0 到 10.255.255.255大公司、学校、云服务器
172.16.0.0/12172.16.0.0 到 172.31.255.255企业网络、虚拟机
192.168.0.0/16192.168.0.0 到 192.168.255.255绝大多数家用路由器

斜杠后面的数字是什么意思?它表示地址的前多少位是固定的“网络号”。比如 /8 表示前 8 位固定,也就是第 1 段必须是 10,后面三段可以随便编;/16 表示前两段固定为 192.168。要注意 172.16.0.0/12 只包括 172.16 到 172.31,像 172.40.1.1 就不在里面,它是一个普通的公网地址。

所以,如果你在电脑或手机的网络设置里看到 192.168.、10. 开头的地址,那就是内网 IP。本站首页显示的则是公网 IP,两者不一样是完全正常的。

路由器怎样让全家共用一个地址

家里的手机、电脑、电视都是内网地址,它们怎么上网呢?靠的是路由器的 NAT(Network Address Translation,网络地址转换)功能,就是“门卫代收代发”:

  1. 你的手机(192.168.1.23)要访问一个网站,把数据包交给路由器。
  2. 路由器把寄件地址改成自己的公网 IP(比如 203.0.113.42),再记一笔账:“这个包是 3 栋 502 寄的”。
  3. 网站只看到 203.0.113.42,就把回信寄到这个地址。
  4. 路由器收到回信,翻一下账本,把收件地址改回 192.168.1.23,转交给你的手机。
家里的手机、电脑、电视各有一个 192.168 开头的内网地址,通过路由器的 NAT 共用一个公网地址 203.0.113.42 访问互联网 你家的内网 手机 192.168.1.23 电脑 192.168.1.5 电视 192.168.1.8 NAT 路由器 公网 IP 互联网 网站只看到 203.0.113.42
图 3-1 全家设备通过 NAT 共用一个公网 IP

正因为有 NAT,IPv4 地址不够用的问题才被拖延了很多年:一户人家只需要占用一个公网地址。它还有一个附带的好处:外面的人不能直接找到你家里的某台设备,就像陌生人不能不经过门卫就闯进小区。

运营商级 NAT:100.64 开头的地址

即使一户只用一个公网地址,IPv4 还是不够分。于是很多运营商在自己那里又加了一层 NAT,让很多户人家共用一个公网地址。这叫运营商级 NAT(英文缩写 CGNAT)。打个比方:不只是小区有门卫,整条街还有一个总门卫。

为此,标准文件 RFC 6598 专门划出了一段地址 100.64.0.0/10,也就是从 100.64.0.0 到 100.127.255.255,给运营商内部使用。它既不是你家路由器分的内网地址,也不是真正的公网地址,而是夹在两者之间的一层。

怎么判断自己是不是在运营商级 NAT 后面?登录路由器后台,看“WAN 口地址”或“外网 IP”:

  • 如果它和本站首页显示的公网 IP 一样,说明你直接拿到了公网地址;
  • 如果它是 100.64 到 100.127 开头,或是 10. 开头,而且和首页显示的不一样,说明你在运营商的 NAT 后面。

手机用流量上网时,几乎都处在运营商级 NAT 后面,成千上万个用户可能共用同一个公网 IP。

另外两个常见的特殊地址

除了上面这些,你在设备上还可能碰到两种既不是公网、也不是普通内网的地址:

  • 127.0.0.1:本机地址,永远指向你正在用的这台设备自己,常被开发软件和测试工具使用。整个 127.0.0.0/8 都留作这个用途。
  • 169.254 开头:设备没能从路由器领到地址时,会给自己临时编一个这样的号码。看到它,通常说明 Wi-Fi 或网线连接有问题,可以试试重新连接网络,或重启路由器。

这对你有什么影响

对日常上网来说,内网地址、多层 NAT 几乎没有影响:看视频、刷网页、聊天都正常。会碰到问题的,通常是想让外面的设备“主动连进来”的场景:

  • 在外面远程访问家里的 NAS(家用存储)或监控摄像头;
  • 自己在家架设网站或游戏服务器;
  • 某些联机游戏提示“NAT 类型严格”。

如果你直接拿到了公网 IPv4,可以在路由器里设置“端口转发”解决;如果在运营商级 NAT 后面,可以试试打电话问运营商能否分配公网 IP,或者改用 IPv6(它通常不需要 NAT,见第 2 章)。

小结

  • 公网 IP 全球唯一,由运营商分配;内网 IP 只在家里或公司内部有效,由路由器分配。
  • 三段私有地址:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。
  • 路由器用 NAT 让全家共用一个公网地址;运营商还可能再加一层,使用 100.64.0.0/10。
  • 首页显示的是公网 IP,和设备设置里看到的内网 IP 不一样是正常的。