子网掩码
子网掩码(netmask)是一个与 IPv4 地址等长的 32 位值,用来把一个 IP 地址拆成「网络部分」和「主机部分」。它常写成点分十进制(如 255.255.255.0),也可用 CIDR 前缀长度表示(如 /24)。掩码里连续的 1 表示网络位,其后连续的 0 表示主机位。
它的核心作用是让设备判断目标 IP 是否和自己在同一子网:把本机 IP 与掩码做按位与(AND)得到网络地址,对目标 IP 做同样运算,两者相同即为同网段、可直接通信,否则需经网关转发。例如 192.168.1.10/24,网络地址是 192.168.1.0,可用主机地址为 .1 到 .254。
使用要点与常见误区:
- 掩码里的 1 必须连续,
255.255.255.0合法,而255.0.255.0这种非法。 - 可用主机数 = 2^(主机位数) − 2(要减去网络地址和广播地址),如
/24可容纳 254 台。 - 掩码不是网关,也不是 IP;它只描述网段如何划分,本身不承担路由。
常见问题
子网掩码和 CIDR 前缀(如 /24)是什么关系?
两者表达的是同一件事。/24 表示掩码前 24 位是 1,等价于 255.255.255.0。把前缀里 1 的个数补足 32 位再按每 8 位转成十进制,就得到点分十进制掩码。
255.255.255.0 最多能容纳多少台主机?
主机位有 8 位,共 256 个地址,但要去掉网络地址(.0)和广播地址(.255),所以实际可用主机是 254 台。
同网段两台机器 ping 不通,可能和掩码有关吗?
有可能。如果两台机器的掩码配置不一致,一方可能认为对方不在同一子网而改走网关,导致无法直连。排查时先确认双方 IP 与掩码算出的网络地址是否一致。