IPv4 子网掩码计算器
输入 IP 或网段即可算出网络地址、广播地址、可用主机数、子网掩码与反掩码,还能拆分子网、复制 Cisco/华为配置。免费无需注册,浏览器本地运算不上传。
- CIDR 表示
- 网络地址
- 广播地址
- 可用主机范围
- 可用主机数
- 总地址数
- 子网掩码
- 反掩码
| 网络地址 | |
| 子网掩码 | |
| 广播地址 |
- 网络地址(十进制)
- 网络地址(十六进制)
- 反向 DNS(PTR)
| Cisco IOS 接口 | ||
| Cisco ACL(反掩码) | ||
| OSPF network 语句 | ||
| Cisco ASA(子网掩码) | ||
| 华为 / H3C | ||
| Linux iproute2 |
Cisco IOS 的 ACL 和 OSPF 用的是反掩码,而 ASA 用的是子网掩码。把两者搞混是这一块最常见的复制粘贴错误。
| # | 子网 | 可用范围 | 广播地址 | 主机数 |
|---|
| 前缀 | 子网掩码 | 反掩码 | 总地址数 | 可用主机数 |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 0.255.255.255 | 16,777,216 | 16,777,214 |
| /9 | 255.128.0.0 | 0.127.255.255 | 8,388,608 | 8,388,606 |
| /10 | 255.192.0.0 | 0.63.255.255 | 4,194,304 | 4,194,302 |
| /11 | 255.224.0.0 | 0.31.255.255 | 2,097,152 | 2,097,150 |
| /12 | 255.240.0.0 | 0.15.255.255 | 1,048,576 | 1,048,574 |
| /13 | 255.248.0.0 | 0.7.255.255 | 524,288 | 524,286 |
| /14 | 255.252.0.0 | 0.3.255.255 | 262,144 | 262,142 |
| /15 | 255.254.0.0 | 0.1.255.255 | 131,072 | 131,070 |
| /16 | 255.255.0.0 | 0.0.255.255 | 65,536 | 65,534 |
| /17 | 255.255.128.0 | 0.0.127.255 | 32,768 | 32,766 |
| /18 | 255.255.192.0 | 0.0.63.255 | 16,384 | 16,382 |
| /19 | 255.255.224.0 | 0.0.31.255 | 8,192 | 8,190 |
| /20 | 255.255.240.0 | 0.0.15.255 | 4,096 | 4,094 |
| /21 | 255.255.248.0 | 0.0.7.255 | 2,048 | 2,046 |
| /22 | 255.255.252.0 | 0.0.3.255 | 1,024 | 1,022 |
| /23 | 255.255.254.0 | 0.0.1.255 | 512 | 510 |
| /24 | 255.255.255.0 | 0.0.0.255 | 256 | 254 |
| /25 | 255.255.255.128 | 0.0.0.127 | 128 | 126 |
| /26 | 255.255.255.192 | 0.0.0.63 | 64 | 62 |
| /27 | 255.255.255.224 | 0.0.0.31 | 32 | 30 |
| /28 | 255.255.255.240 | 0.0.0.15 | 16 | 14 |
| /29 | 255.255.255.248 | 0.0.0.7 | 8 | 6 |
| /30 | 255.255.255.252 | 0.0.0.3 | 4 | 2 |
| /31 | 255.255.255.254 | 0.0.0.1 | 2 | 2 |
| /32 | 255.255.255.255 | 0.0.0.0 | 1 | 1 |
可用主机数按 RFC 3021 处理 /31(点对点链路上两个地址都可用),并把 /32 视为单个主机路由。
由从事网络工具开发的工程师撰写与审校,示例中的每一个地址、掩码和主机数都由本计算器经过单元测试的引擎实算生成。
什么是子网掩码
子网掩码把 32 位的 IPv4 地址切成两部分:网络部分由同一网段的所有主机共享,主机部分标识具体某一台机器。掩码本身也是 32 位——前面一串 1 标出网络位,后面一串 0 标出主机位——所以 255.255.255.0 和 /24 说的是同一件事,CIDR 记法只是把 1 的个数数出来,而不是用十进制拼写。
其余的一切都由这个切分推导而来。把主机位全部置 0 就是网络地址,全部置 1 就是定向广播地址,中间的地址才能分配给主机。这就是 2^n − 2 公式的来历,也是 /26 只有 62 个可用主机而不是 64 个的原因。当一台机器判断目标地址是本地的还是要走网关时,它把自己的掩码同时套在两个地址上再比较结果——本工具的归属检查做的正是这件事。
有两个前缀是故意打破这个规律的。/31 只有两个地址,放不下单独的网络地址和广播地址,RFC 3021 因此规定它在点对点链路上两个地址都可用,现今所有路由器平台都遵循这一点;/32 是单个主机路由,用于环回接口、静态路由、任播地址和单地址防火墙规则。盲目套用 2^n − 2 会在这两种前缀上算出 0 个可用主机,而没有任何一个路由器平台认这个结果。/31 这条例外自带前提:只在真正的点对点接口上成立,共享的 LAN 网段仍然要用 /30 或更短。
你输入的地址除了掩码之外还携带别的信息。10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 是 RFC 1918 私有地址,永远不会在公网上被路由;100.64.0.0/10 是运营商级 NAT 地址;169.254.0.0/16 会在 DHCP 失败时出现;224.0.0.0/4 是组播地址。A 到 E 的历史分类在文档和认证考试里仍会出现,但自 1993 年 CIDR 出现后,有类别路由早已废弃——决定一个网络到哪里结束的是掩码,不是首个八位组。想把同一个地址手工换算成二进制或十六进制,可以用进制转换器。
// Subnetting is integer arithmetic on a 32-bit value.
const toInt = (ip) => ip.split('.').reduce((acc, o) => acc * 256 + Number(o), 0);
const toIp = (n) => [24, 16, 8, 0].map((s) => (n >>> s) & 255).join('.');
function subnet(ip, prefix) {
const mask = prefix === 0 ? 0 : (0xFFFFFFFF << (32 - prefix)) >>> 0;
const network = (toInt(ip) & mask) >>> 0;
const broadcast = (network | (~mask >>> 0)) >>> 0;
// RFC 3021: a /31 has two usable addresses; a /32 has one.
const usable = prefix >= 31 ? 2 ** (32 - prefix) : 2 ** (32 - prefix) - 2;
return { network: toIp(network), broadcast: toIp(broadcast), usable };
}
subnet('192.168.1.130', 26);
// { network: '192.168.1.128', broadcast: '192.168.1.191', usable: 62 } 核心功能
所有字段一屏可见
网络地址、广播地址、首末可用主机、可用与总地址数、子网掩码与反掩码,边输入边更新——不用点提交、不用刷新、不用等。
/31 与 /32 算得对
/31 按 RFC 3021 报 2 个可用地址,/32 报 1 个,旁边说明原因,也说明 /31 在什么情况下不能用。在这两种前缀上套用 2^n − 2 会得到 0,而没有一台路由器认这个结果。
/0 到 /32 前缀滑块
拖动前缀,地址保持不动,一位一位地看着边界移动——回答「这个网段该多大」最快的方式。
二进制视图标出掩码边界
网络地址、掩码、广播地址三行里,网络位与主机位分色绘制,切分点是看见的而不是推算出来的。
子网划分表
把任意网段按更长的前缀拆成等长子网,逐行读出可用范围、广播地址和主机数——不用开表格就能自检 VLAN 规划。
地址块识别与反向 DNS
徽章标明地址所属的块(RFC 1918 私有、CGNAT、链路本地、文档专用、性能测试、组播、保留),同时给出十进制整数、十六进制和 in-addr.arpa 形式。
子网计算示例
192.168.1.130/26 属于哪个网段?——最常考也最常错的一题
192.168.1.130/26
网络地址: 192.168.1.128 广播地址: 192.168.1.191 可用范围: 192.168.1.129 - 192.168.1.190 可用主机: 62(总地址 64) 子网掩码: 255.255.255.192 反掩码: 0.0.0.63
输入的是主机地址而不是网络地址,这正是关键:/26 有 6 个主机位,所以网段每 64 个地址一跳——0、64、128、192。192.168.1.130 落在第三段里,网络地址因此是 192.168.1.128 而不是 192.168.1.0。广播地址是这一段的顶端 192.168.1.191,中间的 192.168.1.129 到 192.168.1.190 才能分配给主机。把输入的地址当成网络地址是子网计算里最高频的错误。
10.0.0.0/22 的网络地址、广播地址与可用主机数
10.0.0.0/22
网络地址: 10.0.0.0 广播地址: 10.0.3.255 可用范围: 10.0.0.1 - 10.0.3.254 可用主机: 1,022(总地址 1,024) 子网掩码: 255.255.252.0 反掩码: 0.0.3.255
/22 从第三个八位组借了 2 位,所以这个网段覆盖 10.0.0.x 到 10.0.3.x——四个连续的 /24 合并成一个广播域。容易出错的地方在掩码 255.255.252.0:252 的二进制是 11111100,所以第三段以 4 为步长递增(10.0.0.0、10.0.4.0、10.0.8.0)。工具里的二进制视图会把借来的这两位标出颜色,子网划分表则可以把它再拆回四个 /24。
/31 点对点链路:可用地址是 2 个,不是 0 个
203.0.113.4/31
两个地址: 203.0.113.4 与 203.0.113.5 可用主机: 2(链路两端各一个) 广播地址: 无 子网掩码: 255.255.255.254 反掩码: 0.0.0.1
RFC 3021 专门为点对点链路定义了 /31:这种链路只有两个端点、不存在共享网段,于是网络地址和广播地址都被取消,两个地址都能分配。套用通用的 2^n − 2 公式会在这里算出 0 个可用主机,而这在任何现代路由器上都是错的——Cisco IOS、Junos 和 Linux 都支持在点对点接口上配 /31。把 /30 换成 /31,路由器互联链路的地址浪费直接减半。前提是它只在真正的点对点接口上成立:多路访问的 LAN 网段仍然要用 /30 或更短,Windows 网卡也不接受 /31。例子用 203.0.113.0/24 是因为 RFC 5737 把它保留给文档使用。
把 192.168.1.0/24 划分成四个 /26
192.168.1.0/24 → /26
192.168.1.0/26 192.168.1.1 - 192.168.1.62 广播 192.168.1.63 62 台 192.168.1.64/26 192.168.1.65 - 192.168.1.126 广播 192.168.1.127 62 台 192.168.1.128/26 192.168.1.129 - 192.168.1.190 广播 192.168.1.191 62 台 192.168.1.192/26 192.168.1.193 - 192.168.1.254 广播 192.168.1.255 62 台
从 /24 借 2 位会得到四个等长子网,每个 64 个地址、62 个可用。注意每个子网都要各自扣掉网络地址和广播地址,所以把一个 /24 拆成四个 /26,可用地址总数从 254 降到 248,净损失 6 个。子网划分表对任意父网段和任意更长前缀都能列出这个布局,是 VLAN 规划下发到设备之前最快的自检方式。
CIDR 与子网掩码对照表:/24 就是 255.255.255.0
/24、/25、/26、/27、/28、/29、/30、/31、/32
/24 255.255.255.0 256 个地址 254 可用 /25 255.255.255.128 128 个地址 126 可用 /26 255.255.255.192 64 个地址 62 可用 /27 255.255.255.224 32 个地址 30 可用 /28 255.255.255.240 16 个地址 14 可用 /29 255.255.255.248 8 个地址 6 可用 /30 255.255.255.252 4 个地址 2 可用 /31 255.255.255.254 2 个地址 2 可用(RFC 3021) /32 255.255.255.255 1 个地址 1 可用(主机路由)
前缀每加 1 位,网段大小减半。最后两行值得记住,因为它们不符合 2^n − 2 的规律:/31 有两个可用地址(点对点,无广播),/32 是单个主机路由,用于环回接口、ACL 条目和静态路由。计算器下方有从 /8 到 /32 的完整对照表,那张表由驱动计算器的同一套引擎生成。
子网掩码计算器怎么用
- 1
输入 IP 地址或 CIDR 网段
填 192.168.1.130/26,粘贴 10.0.0.0 255.255.252.0,或者只填地址再用滑块设前缀。填主机地址也没关系——工具会自动把它归到所属网络。
- 2
拖动前缀滑块看边界移动
从 /0 拖到 /32,主机数、掩码和广播地址实时重算。滑动时地址保持不变,所以「这个网段改大改小会怎样」一个手势就能回答。
- 3
读取子网详情
网络地址、广播地址、首末可用主机、可用与总地址数、子网掩码与反掩码,外加一个徽章标明地址块类型(私有、CGNAT、链路本地、文档专用、组播)和历史分类。
- 4
查看二进制视图与其他表示
网络位与主机位分色显示,掩码切在哪一位看得见而不用推算。同一区域还给出网络地址的十进制整数、十六进制和反向 DNS(in-addr.arpa)名称。
- 5
检查归属并划分子网
粘贴任意地址即可确认它是否落在当前网段内;再选一个更长的前缀,就能把网段拆成等长子网,逐个列出可用范围、广播地址和主机数。
子网划分常见错误
把输入的地址当成网络地址
主机地址套上 /26 之后,很少正好落在网段起点。网络地址是把主机位清零之后剩下的部分,所以 192.168.1.130/26 属于 192.168.1.128,而不是 192.168.1.0。
192.168.1.130/26 -> 网络 192.168.1.0,广播 192.168.1.255
192.168.1.130/26 -> 网络 192.168.1.128,广播 192.168.1.191
对 /31 套用 2^n - 2
减 2 的前提是存在网络地址和广播地址。/31 点对点链路上二者都不存在,RFC 3021 规定两个地址都可分配。在这里报 0 个可用主机,与所有现役路由器平台的行为相悖。
203.0.113.4/31 -> 0 个可用主机
203.0.113.4/31 -> 2 个可用主机(203.0.113.4 和 203.0.113.5)
以为 172.16.0.0/12 只包括 172.16.x.x
这段私有地址的范围是 172.16.0.0 到 172.31.255.255,一共十六个 /16,不是一个。172.15.x.x 和 172.32.x.x 属于公网,是别人的地址。
172.20.5.1 -> 因为不是 172.16.x.x 而被当成公网地址
172.20.5.1 -> 私有地址,落在 172.16.0.0/12(172.16.0.0 - 172.31.255.255)内
写出不连续的子网掩码
子网掩码必须是连续的 1 后面跟连续的 0。255.0.255.0 这样的值不是合法掩码,尽管 ACL 反掩码允许有空隙。设备会拒绝它,而接受它的计算器只是在替你掩盖一个笔误。
10.0.0.0 255.0.255.0
10.0.0.0 255.255.252.0 (即 10.0.0.0/22)
这个子网计算器能做什么
- 规划 VLAN 与地址段
- 把一段地址拆成等长子网,确认每个子网够装下预期主机数,再把布局直接抄进 IPAM 表格或设计文档——在下发到交换机之前。
- 编写防火墙规则与 ACL
- 读出 Cisco ACL 和 OSPF network 语句需要的反掩码,确认一条规则实际匹配的地址范围——0.0.0.63 和 0.0.0.31 之间差的是两个 VLAN 的主机。
- 排查主机连不上网关
- 把主机地址和它配的掩码粘进来,再检查网关是否落在算出的网段内。掩码配错正是「有的能 ping 通、有的不通」的经典原因。
- 高效编址路由器互联链路
- 对比 /30 与 /31 在点对点链路上的差别:/31 让两端各得一个地址,而不是每条链路浪费两个——在几百条电路的广域网上,这个差额相当可观。
- 备考 CCNA、网络工程师等考试
- 先手算一道子网题,再来核对网络地址、广播地址和主机范围。二进制视图会把借位显示出来,而借位正是考题真正在考的东西。
IPv4 子网划分的原理
- 掩码是一条位边界,不是一个十进制数值
- 子网掩码是 32 位:连续一串 1 表示网络,随后一串 0 表示主机。合法的掩码只有 33 个(/0 到 /32),所以 255.255.255.192 合法而 255.0.255.0 不合法——后者中间有洞。本计算器会直接拒绝不连续的掩码,而不是猜你想输入什么。
- 网段步长与第四段速算法
- 同样大小的子网都落在其步长的整数倍上,而步长 = 256 − 对应那段掩码的值。/26 的掩码尾数是 192,所以网段从 0、64、128、192 开始;/28 尾数是 240,就每 16 个一跳。这就是「192.168.1.130 属于哪个子网」背后的算术——它落在第三个 /26 段,所以是 192.168.1.128。
- 保留地址与两个例外
- 主机位全 0 的地址标识网络,全 1 的地址是定向广播,所以普通子网要损失两个地址。RFC 3021 对 /31 点对点链路免除了这两个(两个地址都可用),/32 则是单个主机路由(一个可用地址)。计算器下方的对照表遵循这两条规则,所以它的 /31 那一行写的是 2 而不是 0。
- 反掩码及其必须使用的场合
- 反掩码是子网掩码的按位取反——255.255.255.192 取反得 0.0.0.63。Cisco 的 ACL、OSPF network 语句和 EIGRP 用的都是反掩码而非子网掩码。与子网掩码不同,ACL 反掩码允许不连续,正因如此,一条规则才能匹配某个范围内所有奇数编号的地址。
- 分类已成历史,地址块才是现实
- A/B/C/D/E 分类按首个八位组划分地址空间(0–127、128–191、192–223、224–239、240–255),至今仍在教材和考试里出现,但 CIDR 在 1993 年就取代了有类别路由——决定网络边界的是掩码而不是前几位。真正仍然重要的是地址落在哪个保留块里:RFC 1918 私有、RFC 6598 运营商级 NAT、RFC 3927 链路本地、RFC 5737 文档专用、RFC 2544 性能测试、组播,以及 240.0.0.0/4 保留段。
IP 地址规划最佳实践
- 按增长留余量,但别留十倍
- 给 8 台设备划一个 /24,白白浪费 246 个地址,还平白扩大了广播域。选能留出舒适余量的最小前缀——计算器给出的主机数会把这个取舍摆在你面前。
- 点对点链路用 /31
- 路由器互联电路上,/31 让两端各得一个地址,而不是为两个端点烧掉四个地址。只有确实不支持 RFC 3021 的老设备才退回 /30,并且绝不要把 /31 配在多路访问网段上。
- 按位边界分配,而不是按十进制整数
- 从 10.0.10.0 或 10.0.100.0 开始划网段,在十进制下看着整齐,却没法汇聚成一条路由。把分配对齐到 2 的幂,整个区域才能在路由表里收敛成一条前缀。
- 文档示例请用保留地址段
- RFC 5737 保留 192.0.2.0/24、198.51.100.0/24 和 203.0.113.0/24,正是为了让示例不会撞上真实网络。在运维手册里随手写一个公网地址,早晚会把人指到一台活着的主机上。
- 怀疑路由之前先核对两端的掩码
- 当一台主机能连通一部分目标、连不通另一部分时,先比对它的掩码和网关的掩码。网段实际是 /23 却配成 /24,会让一半的网络看起来像是远端——把两个地址粘进归属检查框,不一致立刻显形。
子网掩码计算器常见问题
子网掩码怎么根据 CIDR 前缀计算?
255.255.255.0 是多少位子网掩码?
IP 地址怎么转成十进制整数或十六进制?
INET_ATON / INET_NTOA)、日志按范围过滤、写位运算判断归属时都会用到这种形式。本计算器的二进制视图下方直接给出网络地址的十进制整数、十六进制和反向 DNS(in-addr.arpa)三种写法。要手工在进制之间换算,可以用进制转换器。 算出来的网段怎么配到 Cisco 或华为设备上?
ip address 192.168.1.129 255.255.255.192,Cisco ACL 用反掩码 access-list 10 permit 192.168.1.128 0.0.0.63,OSPF 是 network 192.168.1.128 0.0.0.63 area 0,Cisco ASA 反过来收子网掩码 access-list OUT permit ip 192.168.1.128 255.255.255.192 any,华为/H3C 是 ip address 192.168.1.129 26,Linux iproute2 是 ip addr add 192.168.1.129/26 dev eth0。最容易出错的一点是 IOS 的 ACL 和 OSPF 收反掩码而 ASA 收子网掩码——两者写反不会报错,但匹配范围完全不同。 为什么可用主机数比总地址数少 2 个?
反掩码是什么?和子网掩码有什么区别?
access-list 10 permit 192.168.1.128 0.0.0.63 匹配的正是 192.168.1.128/26 这个网段。华为和 H3C 的文档里叫「通配符掩码」,国内工程师口语里多说「反掩码」,指的都是同一个东西。要注意 ACL 反掩码允许出现不连续的位(比如只匹配奇数地址),而子网掩码不允许。 /24、/25、/26 分别能容纳多少台主机?
内网 IP 段有哪些?哪些地址是公网的?
/31 和 /32 在真实网络里能用吗?
输入的 IP 地址会不会被上传?
相关工具
查看所有工具 →cURL 命令生成器与构建工具
网络与 API
在浏览器中构建 curl 命令——设置请求方法、请求头、认证与请求体,即刻获得可复制的命令。支持 Bearer、POST JSON、文件上传预设。免费、隐私安全、无需注册。
htpasswd 生成器 — bcrypt、Apache MD5 (apr1) 与 Basic Auth
网络与 API
在线生成 htpasswd 条目,支持 bcrypt、Apache MD5 (apr1)、SHA-1 等算法,并输出 Apache、nginx 和 Docker 的即用配置。100% 在浏览器中运行,密码不上传。
Open Graph 与 Meta 标签生成器
网络与 API
生成 Open Graph、Twitter Card 与 SEO meta 标签,并实时预览在 Google、Facebook、X 上的分享效果。100% 免费、纯浏览器运行、无需注册——一键复制代码即可粘贴使用。
Nginx location 匹配规则测试器 — 为何是这个块
网络与 API
看清哪个 nginx location 块生效,其他块各自输在哪一步。免费在线 location 匹配规则与优先级测试器,支持 =、^~、~、~*,全程浏览器内运行。
traceparent 解码器 — W3C Trace Context
网络与 API
不用再数十六进制位。免费在线 traceparent 解码器,全程在浏览器内运行,不上传任何数据。解析 trace ID、span ID、全部 8 个 trace-flags 位,校验 tracestate,并转换为 Datadog、X-Ray、B3 格式。
AES 解密工具 — 兼容 OpenSSL 与 CryptoJS
安全工具
在线解密 AES —— 支持 GCM/CBC/CTR、口令或原始密钥,自动识别 OpenSSL 与 CryptoJS 的 "U2FsdGVkX1" 格式。100% 浏览器本地运行,密钥永不离开页面。