
/24 到底是什么意思?
如果你见过像 192.168.1.0/24 或 10.0.0.0/8 这样的地址,并想知道斜杠后面的数字是什么意思,这里有一个简短的回答:它表示用于网络部分的位数。剩余的位用于标识该网络上的各个主机。
/24 表示 24 位是网络地址,剩下 8 位给主机——这提供了 256 个地址(254 个可用,因为第一个和最后一个被保留)。

IP 地址只是 32 位数字
像 192.168.1.100 这样的 IPv4 地址由四组 8 位(八位组)组成。二进制表示:
192 = 11000000
168 = 10101000
1 = 00000001
100 = 01100100
192.168.1.100 = 11000000.10101000.00000001.01100100
子网掩码标记这个 32 位数字中哪部分是网络,哪部分是主机。掩码是一串 1 后跟一串 0:
/24 掩码 = 11111111.11111111.11111111.00000000
= 255.255.255.0
网络位(由 1 覆盖):192.168.1
主机位(由 0 覆盖):100
CIDR 前缀与子网掩码对照表
| CIDR | 子网掩码 | 主机数 | 典型用途 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,214 | 大型企业,A 类 |
| /16 | 255.255.0.0 | 65,534 | 中型企业,B 类 |
| /24 | 255.255.255.0 | 254 | 小型办公室,家庭网络 |
| /25 | 255.255.255.128 | 126 | 半个 /24 |
| /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 | 点对点链路 |
| /32 | 255.255.255.255 | 1 | 单主机路由 |
可用主机数公式:2^(32 - 前缀) - 2。减去 2 是因为网络地址(所有主机位为 0)和广播地址(所有主机位为 1)。

分解 /24 网络
以 192.168.10.0/24 为例:
- 网络地址:
192.168.10.0(主机位全零——不可分配) - 第一个可用主机:
192.168.10.1 - 最后一个可用主机:
192.168.10.254 - 广播地址:
192.168.10.255(主机位全一——不可分配) - 总可用主机数: 254
如何将 /24 划分为更小的子网
你可以通过从主机部分借位来将 /24 划分为更小的子网。每多借一位,子网数量翻倍,每个子网的主机数减半。
将 192.168.10.0/24 划分为四个 /26 子网:
| 子网 | 范围 | 可用主机数 |
|---|---|---|
| 192.168.10.0/26 | .0 – .63 | .1 – .62(62 台主机) |
| 192.168.10.64/26 | .64 – .127 | .65 – .126(62 台主机) |
| 192.168.10.128/26 | .128 – .191 | .129 – .190(62 台主机) |
| 192.168.10.192/26 | .192 – .255 | .193 – .254(62 台主机) |
每个 /26 有 62 个可用主机。四个子网 × 62 台主机 + 8 个保留地址 = 256 个。数学总是成立的。

私有地址范围
有三个范围保留给私有网络(RFC 1918),不能在公共互联网上路由:
| 范围 | CIDR | 地址数 |
|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | 1670 万 |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | 100 万 |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | 65,536 |
家庭路由器使用 192.168.x.x。AWS VPC 默认使用 10.0.0.0/16。Docker 默认使用 172.17.0.0/16。
阅读云网络配置
当你在 AWS、GCP 或 Azure 中创建 VPC 或虚拟网络时,CIDR 表示法定义了其大小:
AWS VPC: 10.0.0.0/16 → 65,534 个地址
子网 A: 10.0.1.0/24 → 251 个可用(AWS 每个子网保留 5 个)
子网 B: 10.0.2.0/24 → 251 个可用
子网 C: 10.0.3.0/24 → 251 个可用
Docker 默认: 172.17.0.0/16
容器范围: 172.17.0.2 – 172.17.255.254
AWS 每个子网保留 5 个地址(前 4 个 + 最后 1 个),因此 AWS 中的 /24 提供 251 个可用地址,而不是 254 个。
检查 IP 是否在子网内
import ipaddress
network = ipaddress.ip_network('192.168.10.0/24')
ip = ipaddress.ip_address('192.168.10.42')
print(ip in network) # True
print(network.num_addresses) # 256
print(list(network.hosts())[:3]) # [192.168.10.1, .2, .3]
// 没有内置函数,但很容易实现
function ipToInt(ip) {
return ip.split('.').reduce((acc, octet) => (acc << 8) | parseInt(octet), 0) >>> 0;
}
function isInSubnet(ip, cidr) {
const [net, bits] = cidr.split('/');
const mask = ~(0xFFFFFFFF >>> parseInt(bits)) >>> 0;
return (ipToInt(ip) & mask) === (ipToInt(net) & mask);
}
console.log(isInSubnet('192.168.10.42', '192.168.10.0/24')); // true
→ 使用 IPv4 子网计算器 立即分解任何 CIDR 块——显示网络地址、广播地址、主机范围以及所有子网。