核心答案:子网掩码用来区分 IP 地址的「网络位」和「主机位」。/24(255.255.255.0)表示前 24 位是网络位,剩 8 位主机位可用 2⁸−2=254 台设备。可用主机数 = 2^(32−前缀) − 2。
子网掩码是干什么的
IPv4 地址 32 位(如 192.168.1.100),掩码同样是 32 位的一串 1 接一串 0:
- 掩码是 1 的位 → IP 的对应位属于「网络部分」(哪条街)
- 掩码是 0 的位 → 属于「主机部分」(门牌号)
两台设备网络部分相同 = 同网段,可直接通信;不同则必须经路由器转发。
CIDR 速查表(/8–/30)
| 前缀 | 掩码 | 地址总数 | 可用主机 | 典型场景 |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 1677 万 | 1677 万−2 | 10.0.0.0 私网 |
| /16 | 255.255.0.0 | 65,536 | 65,534 | 172.16 私网、校园网 |
| /24 | 255.255.255.0 | 256 | 254 | 家庭/小公司默认 |
| /25 | 255.255.255.128 | 128 | 126 | 部门级 |
| /26 | 255.255.255.192 | 64 | 62 | 小团队/VLAN |
| /27 | 255.255.255.224 | 32 | 30 | 服务器区 |
| /28 | 255.255.255.240 | 16 | 14 | 设备区 |
| /29 | 255.255.255.248 | 8 | 6 | 点对点/防火墙互联 |
| /30 | 255.255.255.252 | 4 | 2 | 路由器点对点链路 |
可用主机数怎么算
可用主机 = 2^(主机位数) − 2
减掉的 2 个:
- 网络地址:主机位全 0(如 192.168.1.0),标识网段本身
- 广播地址:主机位全 1(如 192.168.1.255),对全段喊话
例:/26 主机位 6 位 → 2⁶−2 = 62 台。
实例:192.168.1.0/24 四等分
把 /24 均分给 4 个部门,每部门 62 台以内 → 各用 /26:
| 子网 | 网络地址 | 可用范围 | 广播地址 |
|---|---|---|---|
| 部门 A | 192.168.1.0/26 | .1 – .62 | .63 |
| 部门 B | 192.168.1.64/26 | .65 – .126 | .127 |
| 部门 C | 192.168.1.128/26 | .129 – .190 | .191 |
| 部门 D | 192.168.1.192/26 | .193 – .254 | .255 |
规律:子网数每翻倍一次,前缀 +1,每段可用数减半(256 → 128 → 64)。
判断两个 IP 是否同网段
方法:各自与自己的掩码按位与,网络地址相同即同段。
例:A = 192.168.1.60/26,B = 192.168.1.100/26
- A 与 255.255.255.192 按位与 → 192.168.1.0
- B 按位与 → 192.168.1.64
- 不同 → 不在同一子网,互访需要三层设备
这也是「IP 设对了却 ping 不通」的经典原因:两边掩码不一致,一个认为对方同段,另一个认为不同段。
公网私网与特殊地址
| 地址块 | 用途 |
|---|---|
| 10.0.0.0/8 | 私网(企业内网) |
| 172.16.0.0/12 | 私网 |
| 192.168.0.0/16 | 私网(家用路由默认) |
| 127.0.0.0/8 | 回环(127.0.0.1 本机) |
| 169.254.0.0/16 | 自动私有(DHCP 失败的临时地址) |
| 100.64.0.0/10 | 运营商级 NAT(宽带内网常见) |
私网地址不能在公网路由,经 NAT 转换后上网。
常见误区
- 「/24 就有 256 台可用」:可用 254,.0 是网络地址、.255 是广播地址,不可分配。
- 「掩码必须按 255.255.255.0 整段」:CIDR 允许任意前缀(/23、/27),整段思维(A/B/C 类)是 1993 年前的老皇历。
- 「改掩码能扩大网段」:/24 改 /23 确实扩大(192.168.0.x–192.168.1.x 互通),但两段内所有设备、网关、DHCP 都要同步改,只改单台会造成半通不通。
- 「网关随便设一个」:网关必须是本子网可用范围内且真实存在转发能力的地址,否则跨网段流量直接丢失。
用[子网计算器](/c/dev/subnet)输入 IP/前缀,网络地址、广播地址、可用范围一次出齐,[进制转换器](/c/dev/base-convert)辅助按位与验算。