子网划分 / CIDR 到底是什么,怎么算?
现象:看到 192.168.1.0/24 一脸懵
配置服务器、容器网络或云 VPC 时,总会遇到 10.0.0.0/16、192.168.1.0/24 这种写法。那个斜杠后面的数字到底什么意思?
CIDR 是什么
CIDR(无类别域间路由)用 IP/前缀长度 表示一段网络。比如 192.168.1.0/24:
- IPv4 地址共 32 位;
/24表示前 24 位是网络位,剩下 8 位是主机位;- 对应的子网掩码是
255.255.255.0(前 24 个二进制 1)。
网络位相同的设备属于同一个子网,可以直接互通;跨子网要走网关。
判断两个 IP 是否同网段的方法:把两个 IP 和掩码都写成二进制,分别做按位与,结果相同就在同一子网。例如 192.168.1.100/24 与 192.168.1.200/24 做与运算都得 192.168.1.0,同网段;而 192.168.2.100/24 得 192.168.2.0,不同网段——这就是「ping 不通要先查是不是跨网段」的原理。
怎么算可用地址
| 项目 | 计算 |
|---|---|
| 主机位数 | 32 - 前缀长度 |
| 地址总数 | 2 ^ 主机位数 |
| 可用主机数(前缀 0–30) | 2 ^ 主机位数 - 2(去掉网络地址和广播地址) |
常见前缀一览:
| CIDR | 掩码 | 可用主机 | 典型用途 |
|---|---|---|---|
/24 | 255.255.255.0 | 254 | 家庭/部门网段 |
/25 | 255.255.255.128 | 126 | 网段对半拆分 |
/26 | 255.255.255.192 | 62 | 小型业务子网 |
/28 | 255.255.255.240 | 14 | DMZ/小集群 |
/16 | 255.255.0.0 | 65534 | 云 VPC 主网段 |
/8 | 255.0.0.0 | 16777214 | 超大私网(慎用) |
两个特例会推翻「减 2」:/31(RFC 3021,两地址都可用)与 /32(单主机)。若心算得出 /31 可用数为 0,以 RFC 与本站工具为准。
本站工具实现注记
| 工具 | 输入 | 输出边界 |
|---|---|---|
| CIDR 计算器 | 一整串 a.b.c.d/n | 仅 IPv4;自动把主机位归零;/31//32 主机数特殊处理 |
| 子网计算器 | IP、前缀、分成几份(须为 2 的幂) | 等长切分;新前缀 = 原前缀 + log₂(份数);先归零父网再步进 |
两者都不做 IPv6、不做起止 IP 反推成 CIDR 列表、不做自动重叠检测。VLSM(各段大小不同)需要你按「从大到小」手工划段,再用 CIDR 工具逐段复核——子网页只做等分。
VPC 划分实战思路
云上规划网段时,推荐的顺序是自上而下预留:
- VPC 整体拿一个大前缀(如
10.0.0.0/16); - 按环境切
/20或/22:生产、预发、测试各占一块,中间留空档给未来新环境; - 每个环境内部再按业务切
/24:应用层、数据层、中间件层分开——安全组规则按网段写,比按 IP 逐条写可维护得多; - 永远不要把两个环境挤在同一个 /24 里「先凑合」,后面拆分要改几十台机器的配置。
反向的坑也要知道:前缀不能随意聚合。192.168.0.0/24 和 192.168.1.0/24 可以合成 /23,但 192.168.0.0/24 和 192.168.2.0/24 就不能——聚合必须落在整齐的二进制边界上。
私网段与路由 / ACL
RFC 1918:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。只有 172.16–31 属于私网;172.32.x.x 是公网。抄办公网段时先用计算器展开核对。
路由看最长前缀;ACL / 安全组常看规则顺序。把四个 /26 汇总成一条 /24 通告很省路由表,但若防火墙只写了汇总段、又在更下面才写「拒绝某 /28」,行为取决于引擎是 LPM 还是 first-match——上线前用两段地址各测一次。
主机名或完整 URL 白名单与 CIDR 白名单分层:先用 URL 解析器 取出主机;TLS 身份另见 证书解码。容器侧双栈占口与端口冲突见站内 Docker / 端口排查文。
容易踩的坑
- 可用数要减 2(0–30):新手常直接用
2^8 = 256,但首尾两个地址不能分配给主机; - 网络地址:主机位全 0(如
192.168.1.0)代表这个网段本身,不能给设备; - 广播地址:主机位全 1(如
192.168.1.255)用于向全网广播,也不能给设备; - 网关占用:实际可分配的往往还要再减去网关(通常取第一个可用地址),云厂商还会保留几个地址做内部服务——控制台显示的「可用 IP」比你算的更少是正常的;
- /31、/32 特殊:点对点链路和单主机有专门用法;本站工具已按 RFC 3021 / 单主机语义计数。
怎么用工具算
- CIDR 页:输入一整串(如
192.168.1.100/24),看归一后的网络、广播、范围; - 子网页:填 IP、前缀、分成 4/8/… 份,看每个小子网的起止;
- 换前缀或份数,实时看网段大小变化,不用手算。
全程本地计算。规划云网络时还可以配合 Dockerfile 生成 把网段约定写进部署配置。原理长文另见 CIDR 计算器指南。
FAQ
/24 和 255.255.255.0 是一回事吗?
是的,只是两种写法。/24 是前缀长度记法,255.255.255.0 是点分十进制掩码,表达的是同一个「前 24 位为网络位」。注意:本站 CIDR 输入框只接受 /n,不接受单独粘贴点分掩码。
为什么家里路由器常是 /24?
因为一个 /24 有 254 个可用地址,足够绝大多数家庭设备,又不至于把网段划得过大难以管理。网段越大,广播流量越多,ARP 表也越大——不是越大越好。
子网划分和子网掩码必须配套吗?
必须。掩码就是用来界定「哪几位是网络位」的。CIDR 的 /N 本质就是掩码的简写。
两个子网 IP 段重叠了会怎样?
路由表会歧义,包可能发到错误的接口。云平台上甚至不允许创建重叠的子网。本站工具不自动报警重叠——规划时用计算器展开候选网段,核对网络~广播区间互不交叉,再落地。
心算捷径:二的幂
粗规划时记住边界值就够。/n 段有 2^(32−n) 个地址(0–30 再减 2):
| 前缀 | 地址数 | 可用 | 常见用途 |
|---|---|---|---|
| /24 | 256 | 254 | 一层楼、一个实验室 |
| /25 | 128 | 126 | 半层楼 |
| /26 | 64 | 62 | 一个小组、小集群 |
| /27 | 32 | 30 | 少量虚拟机 |
| /28 | 16 | 14 | 管理网 |
| /30 | 4 | 2 | 点对点链路 |
VLSM 例子:一个 /24 给四个规模差很多的部门。先大后小:工程(100 主机)拿 /25;QA(50)拿 /26;运维(20)拿 /27;剩下 /27 再切两个 /28 给管理与增长。降序、对齐二的幂边界,后续扩容才不容易被迫整网重编号。
排查注记
开篇就把同网段判断连到真实故障:两个 IP 与掩码做按位与、结果相同才同网段——这就是「ping 不通要先查是不是跨网段」的原理。坑清单里最容易被心算坑的是 /31:点对点链路两个地址都可用、推翻「减 2」规则,文中直接说以 RFC 与工具为准。VPC 规划的自上而下顺序带一条硬纪律——永远不要把两个环境挤在同一个 /24 里「先凑合」,后面拆分要改几十台机器配置;反向的聚合坑也讲得具体:0.0/24 和 1.0/24 能合成 /23,和 2.0/24 就不能,聚合必须落在二的幂边界上。
ToolVault 工具匣 出品的开发者指南。相关工具:子网计算器、CIDR 计算器、URL 解析器、证书解码、Dockerfile 生成。相关阅读:CIDR 计算器指南。访问 首页 查看更多开发者工具。
相关工具
相关文章
Linux crontab 定时任务实战:命令、日志与排查
crontab 不只是写表达式:三个必会命令、/etc/cron.d 与用户 crontab 的区别、任务没跑的五步排查法、PATH/时区/% 转义、MAILTO,以及秒级任务的正确解法。
docker run 转 docker-compose 完全指南:为什么转、怎么转、参数对照表
把 docker run 命令迁移到 docker-compose.yml 的完整指南:compose 相比裸 run 的五大优势、参数逐项对照表(端口/卷/环境变量/重启策略/网络)、常见坑(裸 -e 透传、匿名卷、--rm 语义),附在线转换器用法。
Permission denied (publickey) 怎么解决?Git 推送失败的 6 种原因与修复
git clone/push 报 Permission denied (publickey) fatal: Could not read from remote repository?覆盖公钥没生成、没加载进 agent、没添加到 GitHub/Gitee、多账号配错密钥、deploy key 权限、remote URL 写错六种根因,附 ssh -v 诊断方法。