Uvlio

Command Palette

Search for a command to run...

返回文章列表
技术文章

读懂 CIDR:前缀、可用主机数与范围判断

CIDR 表示法把一整段地址压缩成几个字符,写起来高效,也因此容易读错。几乎所有子网划分的错误都来自三件事之一:前缀数错、忘掉两个保留地址,或者默认所有网络都是 /24。
limitcool 维护的 Uvlio 编辑团队2026-05-177 分钟阅读
主题封面开发工具IP / CIDR 计算器

读懂 CIDR:前缀、可用主机数与范围判断

斜杠后面的数字到底代表什么、一个前缀实际能给你多少地址,以及怎么判断某个地址是否落在范围内。

文章主题预览
理解原理
检查边界
使用工具
关联工具
IP / CIDR 计算器
阅读重点
1理解原理
2检查边界
3使用工具

原创流程图

读懂 CIDR:前缀、可用主机数与范围判断

这张图由 Uvlio 为本文工作流生成,用来说明从输入检查到输出判断的基本路径。
1

理解原理

检查后再进入下一步

2

检查边界

检查后再进入下一步

3

使用工具

检查后再进入下一步

维护与复核
维护者:limitcool。阅读时可重点关注技术原理、处理边界、隐私风险和可验证事实。
斜杠数的是固定位数,不是地址数

IPv4 地址是 32 位。192.168.1.0/24 里的 /24 表示前 24 位标识网络,剩下 8 位留给主机。前缀数字越大,网络越小——这一点初看是反直觉的:/30 极小,/8 极大。地址块大小等于 2 的自由位数次方,所以 /24 有 256 个地址,/25 有 128 个,每多一位就减半。

每个子网都有两个地址不能用

范围里最小的地址标识网络本身,最大的是广播地址,两者都不能分配给主机。所以可用主机数 = 2^(32−前缀) − 2。/24 有 256 个地址但只有 254 台主机;/30 有 4 个地址、只有 2 个可用,这正是 /30 传统上被用作两台路由器之间点对点链路的原因。容量规划时忘了减二,两端各会差一个地址。

/31 与 /32 的例外

减二规则在小端会失效。/32 就是单个地址,用来在防火墙规则或路由里表示某一台具体主机。/31 只有两个地址,放不下「网络 + 广播」这一对,所以 RFC 3021 把它重新定义为点对点链路专用,两个地址都可用。现代路由配置常常优先用 /31 而不是 /30,正是因为它能把只需要两个端点的链路的地址消耗减半。

掩码是同一份信息的另一种写法

255.255.255.0 这样的子网掩码,就是把前缀写成点分十进制:24 个 1 位后面跟 8 个 0 位。掩码某一段能出现的数值是有限的,因为 1 必须连续——128、192、224、240、248、252、254、255。看到 255.255.255.192 就知道固定了 26 位,也就是 /26,62 台可用主机。像 255.255.255.100 这种不在上述取值里的掩码段,是畸形的。

判断一个地址是否在范围内

把掩码分别作用在待判断地址和网络地址上,再比较结果。掩码后的值相同,地址就在范围内。这也解释了为什么一段范围的网络地址主机位总是零:192.168.1.0/24 是合法网络,而 192.168.1.5/24 描述的是它里面的一台主机,要求干净网络前缀的工具会把后者归一化或直接拒绝。当两段范围看起来重叠时,比较掩码后的值是最快的判断方式。

私有地址段,以及最容易被记错的那个

RFC 1918 保留了 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 作为私有用途。172.16 那段最容易记错——它覆盖 172.16.0.0 到 172.31.255.255,而不是只有 172.16 一段。另外两个也值得知道:100.64.0.0/10 是运营商级 NAT 空间,在移动网络里会出现,容易被误认成私有段;169.254.0.0/16 是链路本地地址,看到它通常意味着 DHCP 失败了,而不是有人配置了什么。

改网段前的实用清单

应用新前缀之前,先写出网络地址、广播地址、第一个可用主机、最后一个可用主机和主机数。然后从两端和中间各取一个地址,用掩码测试确认它们都落在范围内。如果是重新编号,在所有主机和防火墙规则迁移完成之前保留旧段可达,因为临时重叠的网段是静默路由环路的常见来源。

常见问题

一个 /24 有多少可用主机?

254 个。这一段共 256 个地址,网络地址和广播地址不能分配。

/30 为什么只有两个可用地址?

它一共 4 个地址,其中两个是网络地址和广播地址,剩下正好两个,适合两台路由器之间的链路。

前缀数字越大网络就越大吗?

相反。前缀数的是固定位数,数字越大留给主机的位越少,范围也就越小。

172.16.0.0/12 全都是私有地址吗?

是,而且一直到 172.31.255.255。从 172.32 开始就是公网地址了。