上周同事搭内网服务,照着教程把网卡配成 192.168.1.0/24,然后死活连不上,在群里喊了一句"这个 /24 到底是啥意思"。我一问,周围好几个写了好几年代码的人,能背出 255.255.255.0 等于 /24,但要问"为什么等于",就没人接得上了。
这篇从比特层面把 IP 地址和子网拆一遍。看完你不仅能看懂 /24,还能手算 /26、/30。
IP 地址其实就是 32 个比特
IPv4 地址一共 32 位二进制,为方便读分成 4 段,每段 8 位,写成十进制就是 192.168.1.0 这样。每段范围 0-255,因为 8 位二进制最多表示 256 种组合。
那 /24 是什么意思?斜杠后面的数字表示前多少位是"网络位"。192.168.1.0/24 就是前 24 位代表网络,剩下 8 位是"主机位",用来区分网络里的不同设备。
子网掩码 255.255.255.0 又是啥?它是网络位的标记工具:网络位写成 1,主机位写成 0。/24 前 24 位全是 1,二进制是 11111111.11111111.11111111.00000000,换成十进制正是 255.255.255.0。所以两者是一回事,只是写法不同。
怎么算网络地址:按位与
把 IP 和子网掩码逐位做"与"运算(都是 1 结果才是 1),得到的就是网络地址。比如 192.168.1.200/24,掩码前 24 位是 1,前 3 段原样保留,最后一段归零,得到网络地址 192.168.1.0,广播地址 192.168.1.255,可用主机 192.168.1.1 到 192.168.1.254,共 254 个。
换个 /26 试试手。/26 表示前 26 位是网络位,掩码是 255.255.255.192(最后一段 11000000 = 192)。拿 192.168.1.200/26 算:200 的二进制是 11001000,与 11000000 按位与得 11000000,即 192,所以网络地址 192.168.1.192,广播 192.168.1.255,可用主机 192.168.1.193 到 192.168.1.254,共 62 个。
发现没有?/26 把 192.168.1.0/24 这个大网切成了 4 个小网,每个小网 62 台可用设备。这就是"子网划分"的本质。
几个容易被忽略的细节
/31 和 /32 没有常规意义上的"可用主机":/31 用于点对点链路(两端各一个地址),/32 表示单个主机地址。内网专用网段 192.168.x.x、10.x.x.x、172.16-31.x.x 是私有地址(RFC 1918),只能在局域网内用。还有,别硬手算,容易错,站里的子网掩码计算器输入 IP 和前缀直接出全部结果,还带二进制对照。
| 前缀 | 子网掩码 | 可用主机数 |
|---|---|---|
| /24 | 255.255.255.0 | 254 |
| /25 | 255.255.255.128 | 126 |
| /26 | 255.255.255.192 | 62 |
| /27 | 255.255.255.224 | 30 |
| /28 | 255.255.255.240 | 14 |
| /29 | 255.255.255.248 | 6 |
| /30 | 255.255.255.252 | 2 |
三个真实场景
家用或小办公室默认 192.168.1.0/24,254 个地址对绝大多数家庭和小团队够用了。两个路由器之间只占 2 个地址,用 /30(甚至 /31)最省地址空间,是骨干网络的标准做法。数据中心和服务器区按业务切成 /26、/27 等小网段,把测试、生产、管理网隔开,互相不通也能减少故障扩散面。
有人问子网掩码能随便改吗?不能。掩码必须和网络规划一致,改错了网段划分就乱,设备之间互相不通,甚至和网关不在同一网段直接断网。改之前先算清新网段范围,再逐台设备调整。
子网这块原理不复杂,难的是第一次建立"按位思考"的感觉。多手算几次,再用计算器对照验证,很快就有直觉了。想顺便确认自己网络的公网 IP,可以用在线IP地址查询;想反查陌生 IP,用IP归属地查询。