先回答一个『为什么是 254』的问题
刚接触网络的人常被这个数字卡住:为什么同一个 /24 网段,总是说『254 台主机』而不是 256?
答案在二进制里。IPv4 地址是 32 位,/24 表示前 24 位固定为网络号,剩下的 8 位是主机号。8 位能表示 0~255 共 256 个组合,但两个被保留:
主机位全 0 → 网络地址(标识整个子网)
主机位全 1 → 广播地址(发给子网内所有主机)
去掉这 2 个,可用主机 = 256 − 2 = 254。这条规则(2^(32−前缀) − 2)能覆盖到任何前缀,是子网换算的基石。
两种写法认全:掩码 vs 前缀
| CIDR | 掩码 | 网络位 | 可用主机 |
|---|---|---|---|
| /30 | 255.255.255.252 | 30 | 2 |
| /29 | 255.255.255.248 | 29 | 6 |
| /28 | 255.255.255.240 | 28 | 14 |
| /24 | 255.255.255.0 | 24 | 254 |
| /23 | 255.255.254.0 | 23 | 510 |
| /16 | 255.255.0.0 | 16 | 65,534 |
| /8 | 255.0.0.0 | 8 | 16,777,214 |
看到 /16 立刻知道主机位 16 位 → 65534 可用;看到 /30 就知道是点对点链路。把掩码转成二进制数 1 的个数,就是前缀。
三种必会计算
1. 网络地址(AND)
IP 11000000.10101000.00000101.00100101 (192.168.5.37)
掩码 /26 11111111.11111111.11111111.11000000 (255.255.255.192)
──────────────────────────────────────────────
AND 11000000.10101000.00000101.00000000 → 192.168.5.0
把主机位清零即得网络地址 192.168.5.0。
2. 广播地址(网络地址 OR 主机位全 1)
同一子网,主机位全 1:
192.168.5.0 + (63) → 192.168.5.63
非整边界的关键在「子网步长 = 256 − 掩码十进制末段」。掩码 255.255.255.192 → 步长 64 → 该子网地址区间是 192.168.5.0–.63,合法主机 .1–.62。
3. 可用主机数
2^(32−前缀) − 2:/24 → 254;/26 → 62;/30 → 2。
从 IP 到合法主机范围
以 192.168.5.37/26 为例:
网络地址 192.168.5.0
首个可用 192.168.5.1
最后可用 192.168.5.62
广播地址 192.168.5.63
可用主机数 62
这些换算既适合手算练熟,也完全可以用子网计算器核对——尤其碰到非 8 位边界的掩码,脚本或工具能省去头痛的按位心算。
云架构里的落地建议
- VPC 起点用 /16:给多环境(dev/staging/prod)、多子网留足空间;
- 每环境 /24:254 台主机足够起步,好记好管理;
- 点对点(VPN/链路)用 /30:只浪费 2 个可用地址,几乎不占网段;
- 预留坑:云厂商常把每子网「前 4 个 + 末尾」保留(网关、DNS、NAT、备用),规划时按文档扣掉;
- 别用 /28 以下:很快耗尽,难以扩容。
口诀与自查
网络 = IP AND 掩码;广播 = 网络 OR 主机位全 1;可用 = 2^主机位 − 2。
随手拿一个公网或内网 IP,配合在线子网计算器算出网络/广播/可用区间,和你手算结果对一遍——这三件事练到条件反射,网络排障和云规划就稳了一大半。