IP 地址与子网掩码:CIDR 怎么算可用主机数
一、CIDR 就是「IP/前缀长度」
192.168.1.0/24 里的 /24 表示前 24 位是网络位、后 8 位是主机位,等价于掩码 255.255.255.0。IP 地址总共 32 位,所以:
地址总数 = 2^(32 − 前缀长度)
| 写法 | 掩码 | 地址总数 | 可用主机数 |
|---|---|---|---|
| 192.168.1.0/24 | 255.255.255.0 | 256 | 254 |
| 192.168.1.0/25 | 255.255.255.128 | 128 | 126 |
| 192.168.1.0/26 | 255.255.255.192 | 64 | 62 |
| 203.0.113.7/30 | 255.255.255.252 | 4 | 2 |
| 10.0.0.0/8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| 172.16.0.0/12 | 255.240.0.0 | 1,048,576 | 1,048,574 |
前缀越长,网段越小。每加一位前缀,地址数减半——这是划分子网的核心直觉。
二、为什么可用数要减 2
每个网段有两个地址不能分给主机:
- 网络地址:主机位全 0,代表整个网段本身;
- 广播地址:主机位全 1,发给它等于发给全网所有主机。
所以 /24 的 256 个地址实际可用 254 个。
三、最反直觉的一点:网络地址按位归零
看这个例子:192.168.1.100/26。很多人以为网络地址就是 192.168.1.100,实际结果是:
| 项目 | 值 |
|---|---|
| 网络地址 | 192.168.1.64 |
| 广播地址 | 192.168.1.127 |
| 可用范围 | 192.168.1.65 ~ 192.168.1.126 |
| 可用主机数 | 62 |
原因:/26 的前 26 位是网络位,最后 6 位是主机位。100 的二进制是 01100100,保留高 2 位、把低 6 位清零后得到 01000000=64。
这就是「主机位归零」:给一个具体主机地址加前缀,工具会先算出它真正所属的网段。排查「为什么这台机器和同网段的另一台不通」时,第一步就是确认双方的网络地址是否一致。
同理 /30 常用于路由器互联:4 个地址、2 个可用(如 203.0.113.5 与 203.0.113.6)。
四、/31 和 /32 是特例
按「减 2」的规则,/31 只有 2 个地址就一个都不能用了。但 RFC 3021 规定点对点链路(两台设备直连)两个地址都可用,可以省一半地址;/32 表示单个主机地址本身,常用在 loopback 或精确匹配,可用数就是 1。
五、私网地址段
| 网段 | 范围 | 用途 |
|---|---|---|
| 10.0.0.0/8 | 10.0.0.0 ~ 10.255.255.255 | 内网,单段最大 |
| 172.16.0.0/12 | 172.16.0.0 ~ 172.31.255.255 | 内网(注意不是 172.0.0.0) |
| 192.168.0.0/16 | 192.168.0.0 ~ 192.168.255.255 | 家庭与办公网最常见 |
| 127.0.0.0/8 | 整个段 | 环回,指向本机 |
| 169.254.0.0/16 | 整个段 | 链路本地,DHCP 失败时的自分配地址 |
看到 169.254 开头的地址,基本可以断定是没拿到 DHCP,而不是「网络配置对了但上不了网」。
六、IP 与整数的互转
IPv4 本质是一个 32 位无符号整数:192.168.1.1 = 3232235777。每个字节一段,这样网络位运算就是纯粹的位运算。
顺带一个换算锚点:255 的二进制是 11111111,十六进制是 FF——一个字节就是 8 位,理解这点再看掩码就是对位数的加减。
七、直接算
→ 子网计算器:网络/广播地址、掩码、可用范围与私网判断
→ 进制转换:二进制、十进制、十六进制互转,掩码换算用得上
→ URL 解析:拆出主机、端口、路径与查询参数
本站文章为个人使用经验的原创整理,除已注明来源的引用外均为本人撰写。文中涉及的软件名称、商标、截图等归各自权利人所有,引用仅用于说明与交流。如认为本站内容侵犯了你的合法权益,请通过「关于本站」页面的联系方式告知,核实后将及时更正或删除。