子网里算可用主机数,为什么一定要减 2?

3 个讲解板块 · 关联 2 款站内工具 · 内容最后核对 2026-10-08

首地址是网段自己的名字,末地址是喊话用的喇叭,这两个都不能发给某台机器。

直接答案

一个网段里,第一个地址(主机位全 0)用来标识这个网段本身,最后一个是广播地址(主机位全 1),发给它等于给全网段所有设备群发。这两个地址不归任何一台设备所有,所以可用主机数是总地址数减 2。

例如 24 位掩码有 256 个地址,可用 254 个;26 位掩码有 64 个地址,可用 62 个。例外是 31 位掩码——它按点对点链路标准设计,两端各用一个地址,不保留网络与广播地址,可用数就是 2。

减 2 这个规则背起来容易,但很多人说不出那 2 个地址具体是什么、为什么不能分。一旦遇到「服务器 ping 得通却拿不到地址」或者地址怎么算都对不上,就卡在这里。

把网络地址与广播地址的职责弄清楚,再看 31 位和 32 位这两个特例,整块知识就闭合了。

1那 2 个地址分别是什么

以最常见的 24 位掩码为例,把首末两个地址拎出来看它们的作用。

地址示例能不能分配给设备作用
网络地址(首个)192.168.1.0不能在路由表里代表整个网段
第一个可用192.168.1.1能常被网关占用
最后一个可用192.168.1.254能可用于主机
广播地址(末个)192.168.1.255不能发往此处等于向全网段群发

把网络地址比作「门牌号里的楼号」、广播地址比作「喊话的喇叭」,就容易记住它们不属于任何住户。

2常用掩码的地址数对照

记住几档常用值,规划网段时不必每次推公式。

掩码长度子网掩码总地址数可用主机数
24 位255.255.255.0256254
25 位255.255.255.128128126
26 位255.255.255.1926462
27 位255.255.255.2243230
29 位255.255.255.24886
30 位255.255.255.25242
31 位255.255.255.25422(点对点,特殊)
32 位255.255.255.25511(单一主机路由)

3两个必须记住的例外

这两个特例不遵循减 2,写自动化脚本时最容易在这里出错。

31 位不保留网络与广播地址
按点对点链路的标准,两端各占一个地址,可用数就是 2;机械减 2 会得到 0,与事实不符
32 位是单一主机
表示一条精确到单个地址的路由,谈不上「网段」与「广播」,可用数就是 1
减 2 只在常规网段成立
从 1 位到 30 位掩码都适用,跨过 30 位就要走上面的特例分支
私有地址段可直接用
10 开头的 8 位段、172.16 开头的 12 位段、192.168 开头的 16 位段是保留给内网使用的,无需申请

写代码判断可用主机数时,先判断掩码长度是否大于 30,大于时走特例分支,否则统一用「2 的主机位次方减 2」,这样不会把 31 位算成 0。

相关疑问

ping 广播地址会发生什么?

同一网段内的设备都会收到响应,可能出现大量回复甚至网络拥塞。这也是它不能分配给单台设备的原因之一:它代表的是一组设备,而不是某台设备。

网关一定要用第一个可用地址吗?

不一定,是约定俗成的习惯。网关可以是网段内任意可用地址,只要全网设备配置一致即可。用第一个可用地址的好处是便于记忆和排查。

为什么 30 位掩码刚好够点对点?

30 位只有 4 个地址,去掉网络与广播剩 2 个可用,正好够一条链路的两端各用一个。所以在 31 位方案普及之前,它一直是点对点链路的标准选择。

通配符掩码和子网掩码是一回事吗?

不是,但相关:通配符掩码是子网掩码按位取反的结果,用在访问控制列表与路由协议里,用来描述「哪些位必须匹配、哪些位可以变化」。

内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-08。若发现错误,欢迎通过页脚反馈入口告知。