CIDR(无类别域间路由)用”IP地址/前缀长度”表示一段 IP 范围,前缀长度决定有多少个 IP 被包含在内。
/24 不等于单个 IP
43.255.122.56/24 表示前 24 位固定,等价于:
43.255.122.0 - 43.255.122.255
共 256 个地址,包含 43.255.122.56,但也包含同网段的所有其他地址。
只匹配单个 IP:使用 /32
IPv4 地址是 32 位,/32 表示所有 32 位都固定:
43.255.122.56/32 → 仅匹配 43.255.122.56
配置防火墙、ACL、路由规则、Cloudflare IP 规则时,允许或封禁单个 IP 都应使用 /32:
# iptables
iptables -A INPUT -s 43.255.122.56/32 -j ACCEPT
# Nginx
allow 43.255.122.56/32;
如果不要求 CIDR 格式,直接写 IP 不加后缀也等同于 /32:
43.255.122.56
常用前缀长度对照
| 写法 | 匹配范围 | 地址数 |
|---|---|---|
x.x.x.x/32 | 仅这一个 IP | 1 |
x.x.x.x/31 | 2 个(常用于点对点链路) | 2 |
x.x.x.x/30 | 4 个 | 4 |
x.x.x.x/29 | 8 个 | 8 |
x.x.x.x/28 | 16 个 | 16 |
x.x.x.0/24 | 256 个(常见局域网段) | 256 |
x.x.0.0/16 | 65536 个 | 65536 |
x.0.0.0/8 | 16777216 个(A 类网络) | 16777216 |
0.0.0.0/0 | 所有 IPv4 地址 | 全部 |
前缀长度与地址数的计算
地址数 = 2^(32 - 前缀长度)
- /32 → 2^0 = 1
- /24 → 2^8 = 256
- /16 → 2^16 = 65536
网络地址与广播地址
在标准 IPv4 子网中,最小地址(如 43.255.122.0)是网络地址,最大地址(43.255.122.255)是广播地址,可用主机地址是中间的 254 个。但在防火墙规则和 CIDR 匹配中,这个区分通常不重要,/24 就是匹配全部 256 个地址。
