私有IP地址范围(RFC 1918)完全指南

路由器上那个以192.168开头的地址,为什么总是这个范围?一探究竟。

为什么会有私有IP地址

公网IPv4地址是有限资源——理论上只有约43亿个可用组合,远远不够分配给地球上的每一台设备。RFC 1918划出了若干地址段,这些地址永远不会在公网上被路由,而是可以在数百万个彼此独立的私有网络内部重复使用。家用路由器通过NAT(网络地址转换)技术,把家里所有设备都隐藏在一个公网IP地址背后。

10.0.0.0/8 范围

从10.0.0.0到10.255.255.255,是最大的私有地址块,拥有约1670万个地址。主要用于大型企业、数据中心和电信运营商的大规模内部网络,家用路由器很少将其作为默认值,但在企业VPN中很常见。

172.16.0.0/12 范围

涵盖172.16.0.0到172.31.255.255,可提供约105万个地址,是中型企业网络的常见选择。开发者对它也不陌生:Docker默认的桥接网络通常会使用这一范围的一部分,例如172.17.0.0/16。

192.168.0.0/16 范围

涵盖192.168.0.0到192.168.255.255,是家用路由器几乎总是默认使用的范围。如果你曾经通过192.168.0.1或192.168.1.1这样的地址打开过路由器管理页面,那正是这个范围——大小恰好适合家庭和小型办公室。

值得了解的其他特殊范围

127.0.0.0/8是环回地址范围,供设备与自身通信使用(127.0.0.1,即localhost),永远不会离开本机。169.254.0.0/16是链路本地地址范围,当操作系统无法联系到DHCP服务器时会自动分配(APIPA)——如果看到这个范围的地址,通常意味着网络连接出了问题。另外,100.64.0.0/10是一个独立于RFC 1918的共享地址空间,常被电信运营商用于运营商级NAT(CGNAT),将许多用户集中在一个公网IP背后。

一个值得了解的实际场景

由于私有IP地址只在各自的网络内部有意义,两个完全独立的网络可以使用同一个范围(比如都用192.168.0.0/24)而互不影响——直到你把它们连接起来。通过VPN将家庭网络与公司网络桥接进行远程办公时,可能会出现地址范围冲突,系统无法判断192.168.0.10指的是哪一端,导致连接中断。把其中一端的内部地址范围改成另一个私有地址块(例如172.16.0.0/12),通常就能解决问题。

三个私有地址块的大小对比

RFC 1918的三个地址块大小差别很大:10.0.0.0/8含16,777,216个地址,172.16.0.0/12含1,048,576个,192.168.0.0/16含65,536个。实际使用中,很少把整个地址块当作一个大网络,而是划分成192.168.1.0/24这样的子网。一个/24子网有256个地址,但首尾两个分别用作网络地址和广播地址,所以能分配给设备的是254个。

家用路由器的常见默认地址

家用路由器的默认地址常见的是192.168.0.1和192.168.1.1,有些设备使用10.0.0.1或192.168.100.1,具体取决于品牌和型号,设备背面的标签或说明书上通常会写明。在Windows上,可以打开命令提示符运行ipconfig,查看“默认网关”,那就是路由器在你网络里的私有地址。

如何为自己的网络选择地址段

如果网络将来可能通过VPN或云专线与别的网络互联,最好避开最常见的192.168.0.0/24和192.168.1.0/24,因为别的网络很可能也在用这两个段,容易冲突。选择10.42.0.0/16或172.20.0.0/16这类不太常见的范围,并为每个站点从一开始就分配互不重叠的子网,以后就不必为重新编号而逐台修改设备。

IPv6中的对应概念:唯一本地地址

IPv6也有类似私有地址的唯一本地地址(ULA),由RFC 4193定义在fc00::/7内,实际使用的是fd00::/8,不会在公网上被路由。IPv6下多数设备同时拥有全球地址,使用ULA的主要原因是想让内部通信地址不随运营商前缀变化。以fe80::开头的是链路本地地址,用于同一链路内的邻居通信。

私有地址不等于安全防护

NAT在客观上往往能挡住来自外部的主动连接,但它的初衷是节省地址,而不是保护设备。真正的防火墙是按规则控制流量,无论采用哪种地址方案都应当启用。另外,同一私有网络内的设备彼此可以通信,一旦某台电脑或摄像头被攻陷,就可能扫描并攻击网络里的其他设备。

端口映射不生效?可能是CGNAT

如果路由器WAN口的地址是100.64到100.127开头,或者本身就是私有地址,说明运营商很可能使用了运营商级NAT,你的路由器并没有公网IP。此时在路由器上做端口映射无法让外部访问内网服务,因为前面还有一层NAT。常见办法是向运营商申请公网IP(有时需要付费或有条件限制)、使用VPN或内网穿透服务,或者在运营商支持时使用IPv6。

专门留给示例的地址段

教程和文档中常出现的192.0.2.0/24、198.51.100.0/24和203.0.113.0/24被称为TEST-NET,是专门保留给示例用的,不应出现在真实网络里。如果在配置中看到这些地址,多半是有人直接复制了示例而没有修改。

NAT如何让私有地址也能接入互联网

私有IP地址本身无法在公网上被路由——沿途的路由器根本无法判断,在数百万个都在使用192.168.1.10的网络中,你指的到底是哪一个。网络地址转换(NAT)通过将出站流量的源地址改写为路由器唯一的公网IP地址,并跟踪每个响应应归属于哪台内部设备,来解决这个问题。这也是为什么网络外部的设备通常无法主动向内部设备发起连接——通信必须从内部发起,或者通过路由器设置明确转发。

一眼识别私有地址

如果一个地址以192.168、10.开头,或者落在172.16到172.31之间,那它就是私有地址,只在特定的本地网络中有效——在排查故障、查看路由器设备列表或检查日志时,能够立刻识别出这一点会很有帮助。其他地址几乎肯定是可在互联网上路由的公网地址,不过还有少数几个保留范围(如环回地址和链路本地地址)是为特殊用途而非通用网络通信保留的。

通过地址排查故障

设备上不了网时,地址往往是第一条线索。出现169.254.x.x,说明设备没能从DHCP获得地址,应检查网线或Wi-Fi连接以及路由器的DHCP服务。在使用192.168.1.0/24的网络里出现192.168.0.20这样的地址,通常是之前在别的网络里设置的固定IP还留着。两台设备地址重复则会导致时断时续,可以在路由器的客户端列表里找出重复项。

云网络和容器同样使用这些地址段

云上的虚拟网络、容器平台和VPN都会用到这几个私有地址段,所以地址重叠是常见问题。如果家里或公司用10.0.0.0/8,云网络也用了同一段,两边互通就会出问题,除非子网相互独立。在第一次部署之前先做一份简单的地址规划表,能省下很多后续工作。

常见问题

私有IP地址能直接连接互联网吗?

不能。私有IP范围被有意排除在互联网路由之外,因此只拥有私有地址的设备无法单独访问互联网。路由器需要执行NAT,将私有地址转换为公网地址,连接才真正得以实现。

为什么不是只有一个私有范围,而是三个?

提供不同大小的范围,是为了让网络能根据自身规模灵活选择。管理海量设备的大型企业或运营商可能会用到广阔的10.0.0.0/8,而只有少数几台设备的家庭网络,用小得多的192.168.0.0/16就完全够用。

怎么查看自己电脑的私有IP地址?

在Windows上打开命令提示符运行ipconfig;在macOS或Linux上可以在网络设置中查看,或使用ifconfig、ip addr命令;手机则可以在已连接Wi-Fi的详情里看到。它和网站看到的公网IP不是同一个地址。

172.32.0.0是私有地址吗?

不是。私有地址段是172.16.0.0到172.31.255.255,172.32.0.0及以上属于公网地址。很多人误以为172开头的都是私有地址,这一点要特别注意。