DevToolBox免费
博客

IP 子网掩码与 CIDR 表示法详解:/24、/16、/8 及更多

8 分钟阅读作者 DevToolBox

子网掩码和 CIDR 表示法是 IP 网络的基础。无论你是设计云 VPC、配置家庭路由器还是准备网络考试,理解子网掩码如何将 IP 地址分为网络部分和主机部分都至关重要。本指南涵盖从二进制基础到完整 CIDR 参考表的所有内容。

1. 什么是子网掩码?

子网掩码是一个 32 位数字,用于将 IP 地址分为网络部分和主机部分。网络位设为 1,主机位设为 0。

255.255.255.0 的二进制分解:

255  .  255  .  255  .  0
11111111.11111111.11111111.00000000
|-------- Network --------|- Host-|
        24 bits               8 bits

子网掩码通过与 IP 地址进行按位 AND 运算来应用。运算结果就是网络地址。掩码中设为 1 的位标识网络;设为 0 的位标识该网络中的主机地址。

示例:IP 192.168.1.100,掩码 255.255.255.0

IP Address:    192.168.1.100   = 11000000.10101000.00000001.01100100
Subnet Mask:   255.255.255.0   = 11111111.11111111.11111111.00000000
               ─────────────────────────────────────────────────────
Network (AND): 192.168.1.0     = 11000000.10101000.00000001.00000000
Broadcast:     192.168.1.255   = 11000000.10101000.00000001.11111111
Host Range:    192.168.1.1 — 192.168.1.254  (254 usable hosts)

2. CIDR 表示法:/24、/16、/8

CIDR(无类别域间路由)表示法在 IP 地址后加斜杠和网络位数。它于 1993 年取代了旧的有类地址系统(A、B、C 类)。

/24/24 = 255.255.255.0 — 24 位网络位,8 位主机位,254 个可用主机
/16/16 = 255.255.0.0 — 16 位网络位,16 位主机位,65,534 个可用主机
/8/8 = 255.0.0.0 — 8 位网络位,24 位主机位,16,777,214 个可用主机

/后的数字表示 32 位地址中有多少个前导位是网络前缀。剩余的位用于主机地址。

192.168.1.0/24
│           │
│           └── 24 network bits (slash notation)
└── Network prefix

Binary view:
11000000.10101000.00000001 . 00000000
|---- 24 network bits ----| |8 host |

3. 完整 CIDR 参考表:/8 到 /32

此表显示从 /8 到 /32 的每个 CIDR 前缀及对应的子网掩码、通配符掩码、总地址数和可用主机数。

CIDR子网掩码通配符总 IP 数可用主机典型用途
/8255.0.0.00.255.255.25516,777,21616,777,214Class A
/9255.128.0.00.127.255.2558,388,6088,388,606
/10255.192.0.00.63.255.2554,194,3044,194,302
/11255.224.0.00.31.255.2552,097,1522,097,150
/12255.240.0.00.15.255.2551,048,5761,048,574172.16.0.0/12
/13255.248.0.00.7.255.255524,288524,286
/14255.252.0.00.3.255.255262,144262,142
/15255.254.0.00.1.255.255131,072131,070
/16255.255.0.00.0.255.25565,53665,534Class B / VPC
/17255.255.128.00.0.127.25532,76832,766
/18255.255.192.00.0.63.25516,38416,382
/19255.255.224.00.0.31.2558,1928,190
/20255.255.240.00.0.15.2554,0964,094Large subnet
/21255.255.248.00.0.7.2552,0482,046
/22255.255.252.00.0.3.2551,0241,022
/23255.255.254.00.0.1.255512510Small office
/24255.255.255.00.0.0.255256254Class C / LAN
/25255.255.255.1280.0.0.127128126
/26255.255.255.1920.0.0.636462
/27255.255.255.2240.0.0.313230Small segment
/28255.255.255.2400.0.0.151614Tiny subnet
/29255.255.255.2480.0.0.786Point-to-point
/30255.255.255.2520.0.0.342Router link
/31255.255.255.2540.0.0.122*RFC 3021 P2P
/32255.255.255.2550.0.0.011*Host route

* /31 uses both addresses per RFC 3021 (point-to-point). /32 is a single host route.

4. 子网划分原理

IPv4 地址为 32 位。子网掩码决定哪些位属于网络、哪些属于主机。用二进制来可视化:

Example: 172.16.10.0/20

IP:   10101100.00010000.00001010.00000000
Mask: 11111111.11111111.11110000.00000000
      |---- 网络位(掩码中的 1) ----|--- 主机位(掩码中的 0) ---|
      |<-------- 20 bits -------->|<- 12 bits ->|

Network:   172.16.0.0     (host bits all 0)
Broadcast: 172.16.15.255  (host bits all 1)
Range:     172.16.0.1 — 172.16.15.254
Hosts:     2^12 - 2 = 4,094

关键规则:

  • 第一个地址(所有主机位 = 0)是网络地址。
  • 最后一个地址(所有主机位 = 1)是广播地址。
  • 可用主机 = 2^(主机位) - 2(减去网络地址和广播地址)。
  • 对于 /31 和 /32,有特殊规则(点对点链路和单主机)。

5. 子网计算:分步示例

给定 10.0.0.0/22,计算网络详情:

1步骤 1:/22 表示 22 个网络位,10 个主机位
2步骤 2:子网掩码 = 11111111.11111111.11111100.00000000 = 255.255.252.0
3步骤 3:总地址数 = 2^10 = 1,024
4步骤 4:可用主机 = 1,024 - 2 = 1,022
5步骤 5:网络地址 = 10.0.0.0,广播地址 = 10.0.3.255
6步骤 6:可用范围 = 10.0.0.1 到 10.0.3.254
10.0.0.0/22

Binary mask: 11111111.11111111.11111100.00000000 = 255.255.252.0
Wildcard:    00000000.00000000.00000011.11111111 = 0.0.3.255

Network:     10.0.0.0
First host:  10.0.0.1
Last host:   10.0.3.254
Broadcast:   10.0.3.255
Total:       1,024 addresses
Usable:      1,022 hosts

6. 私有 IP 地址范围(RFC 1918)

以下三个 IP 范围保留给私有网络,不会在公网上路由:

10.0.0.0/810.0.0.0/8 — 16,777,216 个地址 — 大型企业网络
172.16.0.0/12172.16.0.0/12 — 1,048,576 个地址 — 中型网络
192.168.0.0/16192.168.0.0/16 — 65,536 个地址 — 家庭和小型办公网络

此外,169.254.0.0/16 用于链路本地(APIPA),127.0.0.0/8 是环回地址范围。

Private Ranges (RFC 1918):
┌─────────────────┬───────────────────────────┬──────────────┐
│  10.0.0.0/8     │  10.0.0.0 – 10.255.255.255│ 16,777,216   │
│ 172.16.0.0/12   │ 172.16.0.0 – 172.31.255.255│  1,048,576   │
│ 192.168.0.0/16  │ 192.168.0.0 – 192.168.255.255│     65,536 │
└─────────────────┴───────────────────────────┴──────────────┘

Other reserved:
127.0.0.0/8       Loopback
169.254.0.0/16    Link-local (APIPA)
100.64.0.0/10     Carrier-grade NAT (RFC 6598)

7. 实际常用子网

不同环境使用不同的子网大小:

/24/24(256 个 IP)— 家庭网络:大多数路由器默认 192.168.1.0/24
/23/23(512 个 IP)— 小型办公室:当一个 /24 不够用时
/16/16(65,536 个 IP)— 云 VPC:AWS、GCP 和 Azure 默认 VPC 大小
/30/30(4 个 IP)或 /31(2 个 IP)— 路由器间点对点链路
/32/32(1 个 IP)— 单主机路由,用于防火墙和路由表
K8s/12 或 /16 — Kubernetes Pod 和 Service CIDR 范围
# AWS VPC example
VPC:            10.0.0.0/16     (65,536 IPs)
├── Public-1a:  10.0.1.0/24     (256 IPs)
├── Public-1b:  10.0.2.0/24     (256 IPs)
├── Private-1a: 10.0.10.0/24    (256 IPs)
├── Private-1b: 10.0.11.0/24    (256 IPs)
├── DB-1a:      10.0.20.0/24    (256 IPs)
└── DB-1b:      10.0.21.0/24    (256 IPs)

# Kubernetes (default)
Pod CIDR:       10.244.0.0/16
Service CIDR:   10.96.0.0/12

8. IPv6 CIDR 基础

IPv6 地址为 128 位,提供极其庞大的地址空间。CIDR 表示法的工作方式相同:

/64/64 — 标准子网大小。每个子网有 2^64 个主机地址(最常见的分配)。
/48/48 — 典型站点分配。包含 65,536 个 /64 子网。
/128/128 — 单主机地址(相当于 IPv4 的 /32)。
/32/32 — ISP 分配。包含 40 亿个 /64 子网。

与 IPv4 不同,IPv6 不使用广播地址。/64 边界很重要,因为无状态地址自动配置(SLAAC)需要它。

IPv6 Address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64

|---- 64-bit Network Prefix ----|---- 64-bit Interface ID ----|
2001:0db8:85a3:0000              :0000:8a2e:0370:7334

Common allocations:
/32  →  ISP allocation       (65,536 × /48 sites)
/48  →  Site allocation      (65,536 × /64 subnets)
/64  →  Single subnet        (18,446,744,073,709,551,616 hosts)
/128 →  Single host          (loopback, host routes)

9. 超网(路由聚合)

超网将多个较小的子网合并为一个更大的前缀,以减少路由表条目。这也称为路由汇总或聚合。

示例:将四个 /24 网络合并为一个 /22:

Before (4 routes):
192.168.0.0/24   →  192.168.0.0   – 192.168.0.255
192.168.1.0/24   →  192.168.1.0   – 192.168.1.255
192.168.2.0/24   →  192.168.2.0   – 192.168.2.255
192.168.3.0/24   →  192.168.3.0   – 192.168.3.255

After (1 route):
192.168.0.0/22   →  192.168.0.0   – 192.168.3.255

Binary proof:
192.168.0.0 = 11000000.10101000.000000|00.00000000
192.168.1.0 = 11000000.10101000.000000|01.00000000
192.168.2.0 = 11000000.10101000.000000|10.00000000
192.168.3.0 = 11000000.10101000.000000|11.00000000
                                 ^^^^^^
                            22 common bits → /22

好处:更小的路由表、更快的查找、更少的 BGP 通告和更简单的 ACL。

规则:子网必须连续且与超网边界对齐。不能将 192.168.1.0/24 和 192.168.5.0/24 聚合为单个前缀。

10. 子网计算工具

这些工具可以帮助你快速计算子网:

ipcalc

ipcalc — Linux CLI 工具。使用 apt install ipcalc 安装。显示网络、广播、主机范围和通配符。

sipcalc

sipcalc — 支持 IPv6 的高级 CLI 工具。使用 apt install sipcalc 安装。

Online

在线计算器 — 我们的 IP 计算器工具可直接在浏览器中计算子网。

Python

Python ipaddress 模块 — 用于脚本中子网计算的内置库。

# ipcalc example
$ ipcalc 192.168.1.0/24
Address:   192.168.1.0          11000000.10101000.00000001. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
Network:   192.168.1.0/24
HostMin:   192.168.1.1
HostMax:   192.168.1.254
Broadcast: 192.168.1.255
Hosts/Net: 254

# Python ipaddress
import ipaddress
net = ipaddress.ip_network('10.0.0.0/22')
print(net.network_address)   # 10.0.0.0
print(net.broadcast_address) # 10.0.3.255
print(net.num_addresses)     # 1024
print(list(net.subnets()))   # [10.0.0.0/23, 10.0.2.0/23]

试试我们的 IP 计算器工具

IP Calculator →

FAQ

子网掩码和 CIDR 表示法有什么区别?

它们以不同格式表示相同的信息。子网掩码 255.255.255.0 等同于 CIDR 表示法中的 /24。CIDR 更紧凑,是现代标准。

/24 子网有多少个可用主机?

/24 子网有 256 个总地址(2^8)。减去网络地址和广播地址,剩余 254 个可用主机地址。

/32 是什么意思?

/32 表示没有主机位的单个 IP 地址。它用于路由表、防火墙规则和 ACL 中指定精确的主机。

可以将 /24 划分为更小的子网吗?

可以。/24 可以分成两个 /25(各 126 个主机)、四个 /26(各 62 个主机)、八个 /27(各 30 个主机),依此类推。每增加一位网络位,子网数翻倍,主机数减半。

什么是通配符掩码?

通配符掩码是子网掩码的反码。对于 255.255.255.0,通配符是 0.0.0.255。通配符掩码用于 Cisco ACL 和 OSPF 配置中匹配 IP 地址范围。

为什么云提供商建议 VPC 使用 /16?

/16 提供 65,534 个可用 IP,足以容纳不同可用区、服务和未来增长的多个子网,无需重新编号。AWS、GCP 和 Azure 都推荐 /16 作为默认 VPC 大小。

𝕏 Twitterin LinkedIn
这篇文章有帮助吗?

保持更新

获取每周开发技巧和新工具通知。

无垃圾邮件,随时退订。

试试这些相关工具

🌐IP Subnet Calculator🌐IP to Binary Converter01Text ↔ Binary Converter

相关文章

REST API 最佳实践:2026 完整指南

学习 REST API 设计最佳实践,包括命名规范、错误处理、认证、分页、版本控制和安全头。

DNS 记录类型详解:A、CNAME、MX、TXT

DNS 记录类型完全指南:A、AAAA、CNAME、MX、TXT、NS、SOA、SRV 和 CAA。了解每种记录类型的使用场景和实际示例。