IPv4 地址到底是什么?从你家路由器后台的 192.168.1.1 说起
一、一个地址,是为了让两台设备能互相找到
你应该见过这个界面:在浏览器里输入 192.168.1.1,跳出来路由器后台的登录页。
也可能见过另一句更烦人的提示:IP 地址冲突,无法连接网络。
两件事背后是同一个前提:联网的设备各自要有一个地址,数据包才知道往哪里送。新设备接入的过程也很朴素——开机后它先喊一声「我刚接上,谁给我个地址」,负责分配的设备(通常是路由器,跑着 DHCP 服务)从手里的一段地址里挑一个借给它,到期再续。这套地址的第四个版本就是 IPv4,今天绝大多数设备用的还是它。顺带分清两件事:内网地址是路由器发给你设备的,公网地址由运营商分配;家用宽带的公网地址多数只是临时的,光猫重启一次就可能换一个。
至于前三版,要么停留在实验阶段,要么很快被替换掉,没有真正跑起来。IPv4 在 1981 年 9 月由 RFC 791 定义,四十多年过去,它还在扛着互联网的大部分流量。
二、IPv4 地址长什么样

写成十进制,它长这样:8.8.8.8、192.168.1.1、223.5.5.5。四段数字,中间用点隔开,这种写法叫点分十进制。
每一段是 8 位二进制,所以取值范围是 0 到 255。拿 192 举例,它的二进制是 11000000,也就是 128 + 64;再看 255,8 位全是 1,等于 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1。
四段拼起来是 32 位——这是名字里那个 4 之后真正要紧的数字。32 位意味着所有可能的组合有 2³² 种,也就是 4,294,967,296 个,约 42.9 亿个。这是 IPv4 诞生时就定下的上限,不是后来被谁削减的结果。
有个细节值得记住:设备之间传来传去的并不是「192.168.1.1」这串字,而是 32 个 0 和 1。点分十进制只是给人看的写法。至于为什么非拆成四段,而不是一口气写成一个 0 到 42 亿之间的大数字——纯粹是为了好念、好抄、好比对。
三、一个地址被切成两半:网络号和主机号

如果每个地址都只是一个孤立的编号,路由器会先累死:它必须记住世界上每一台设备各自接在哪个口上。
实际做法是把 32 位切成两部分。前一段表示「属于哪个网络」,叫网络号;后一段表示「这个网络里的第几台设备」,叫主机号。切在哪个位置由子网掩码决定。家用路由器的掩码通常是 255.255.255.0,换成二进制是前 24 位全为 1、后 8 位全为 0,所以也写成 /24。两种写法说的是同一件事。
以 192.168.1.0/24 为例:前 24 位是网络号,剩下 8 位留给主机,2⁸ = 256 个地址。其中 .0 代表这个网段本身,.255 是广播地址,能分配给设备的实际是 254 个。同样的算法,/16 有 65,536 个地址,/8 有 16,777,216 个。你家里那台路由器通常占着网段里的 .1,也就是设备出网时的网关。家用网络普遍选 /24,图的就是这份余量:254 个位置,手机、电脑、电视、摄像头全算上也很难占满。
早期并不是这样切的。最初按 A、B、C 三类固定分配:一个 A 类网段能容纳 1600 多万个地址,B 类 65,536 个。颗粒度太粗,不少机构拿到一大块却只用掉零头。1993 年 9 月的 RFC 1518、1519 引入了可以自由指定前缀长度的做法,也就是 CIDR——今天写法里那个斜杠,就是那次改动留下的。
切分带来的好处是路由器只需要知道「192.168.1.0/24 这个网段在我这个口上」,不必记住里面每一台设备。互联网骨干能撑住今天的规模,靠的就是这种一层层的聚合。
四、为什么你家和邻居家的地址可以一样

看到这里你可能会问:我家路由器是 192.168.1.1,邻居家也是 192.168.1.1,为什么没有打起来?
因为有些地址被规定只能在内网使用,不允许出现在公网上。RFC 1918 划出了三段:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。这三段可以在无数个互不相连的网络里反复使用,彼此不干扰。你家和我家用同一个名字,但没人把这个名字带到大街上——开头那句「地址冲突」,说的是同一个内网里两台设备被分到了同一个地址,跟邻居家无关。
真正需要全局唯一的,是出口那个公网地址。手机、电脑、电视各有自己的内网地址;出门上网时经过 NAT(网络地址转换),路由器把源地址换成自己的公网地址,同时记下这层对应关系,回来的数据再按记录发还给对应的设备。于是你家十几个设备,运营商那边看到的是一个地址。具体过程是这样的:手机用 192.168.1.2 加一个临时端口去访问网页,路由器把源地址换成自己的公网地址,同时换成另一个自己分配的端口号,并把这组对应关系记在内存里;数据回来时按这份记录还原成 192.168.1.2 发回手机。这份记录是临时的,会话结束就清掉。在人口密集的区域,运营商在公网侧还会再叠一层 NAT,让多个用户共用一个公网地址,这就是为什么有时查到的公网 IP 看着像「大家都在用」。
代价也有:默认情况下外面的设备没法主动连进来。想在家里跑个服务、在外面看监控,就得在路由器上配端口映射,或者靠厂商的中转服务绕一圈。NAT 补上了地址不够的窟窿,但也让互联网少了一点最初那种端到端的直白。
五、42.9 亿是怎么用完的

42.9 亿听着不少,不够用是两个原因叠在一起:早期按类发放留下一批用不满的大块地址,而联网设备的数量远远超出 1981 年的预想——当年没人会想到机顶盒、摄像头、手表都要各占一个位置。
2011 年 2 月 3 日,IANA 把最后五个 /8 分配给五个区域分配机构,中央池就此清空。接下来是各区域的限额发放:欧洲的 RIPE NCC 从 2012 年 9 月 15 日起,每个成员一次只能申请一个 /22,也就是 1,024 个地址;到 2019 年 11 月 25 日,它的池子也见底了,新申请只能排队等别人退回来的地址。
今天想拿到 IPv4 地址,还有一条路:从别人手里过户。五个区域分配机构都允许地址在机构之间转移,北美那边的最小单位是 /24,接收方还要证明自己未来两年确实用得上。地址就这样成了一种可以交易的资源。
那为什么上网没出乱子?三件事同时在撑着。一是 NAT 让大量设备共用少量公网地址;二是用不上的地址会被回收、重新分配;三是 IPv6 并行运行,它用 128 位地址,数量约 3.4×10³⁸ 个。主流设备和服务早已支持双栈:能走 IPv6 就走 IPv6,走不了就退回 IPv4。你打开手机的网络设置,多半能看到 IPv4 和 IPv6 两组地址并存,就是这个原因。
换得慢也有客观理由:改协议要动的不只是你自己的设备,还有沿途的运营商网络、公司内网的老系统和一些把 IPv4 地址写死在代码里的软件。再加上 NAT 已经让「地址不够」这个痛感钝化了,迁移的动力就一直不足。所以更现实的结局是两套协议长期并存,而不是某天 IPv4 被关掉。
六、三个可以马上动手的动作

查自己的地址。 在搜索引擎里搜 IP,看到的是你的公网地址;在终端里看的是内网地址——macOS 或 Linux 上用 ifconfig | grep "inet ",Windows 上用 ipconfig,多半会看到 192.168.x.x 或 10.x.x.x。两边不是一回事,别把它们搞混:你对外的身份是运营商给的那个公网地址,内网地址一到门外就不再被承认。
打开路由器后台,看局域网设置。 那里会写着 255.255.255.0 或者 /24,你家的地址池就是由它定义的。顺手看一眼 DHCP 分配范围:256 个地址里,网段地址、广播地址和路由器自己各占一个,剩下 253 个才是能分给设备的。
记住几个特殊地址。 127.0.0.1 指设备自己,也就是「本机」;169.254.x.x 表示设备没要到地址,只好自己编一个(通常是 DHCP 没响应);0.0.0.0 表示「任意地址」;255.255.255.255 是本地广播,发给同一个网段里的所有设备。
下次再看到 192.168.1.1,你大概不会把它当成一串随机数字了——它是一个 /24 网段的网关位置,一个只在你家有效的地址。