工具指南26-在线子网计算器

4 阅读7分钟

配一台新服务器、划分 VPC 网段、写 Nginx 的 allow 规则——只要涉及网络配置,都绕不开子网计算。问题是,子网掩码的二进制运算既枯燥又容易出错:/24 还好说,/22 究竟包含哪些 IP?10.0.3.25510.0.4.0 是同一个子网吗?稍微复杂一点就得掏计算器。

在线子网计算器 把这些计算全部自动化:输入一个 IP 和前缀长度,立刻得到网络地址、广播地址、可用 IP 范围、主机数量,还能一键把一个大子网拆分成若干小子网。本文在介绍工具用法的同时,把子网的技术原理也讲清楚——用多了自然就记住了。

快速上手

打开 子网计算器,在输入框填入 IP 地址和前缀长度,两种格式都支持:

  • CIDR 格式192.168.1.0/24
  • IP + 子网掩码192.168.1.0 + 255.255.255.0

点击计算,立刻得到:

字段示例值(输入 192.168.1.0/24)
网络地址192.168.1.0
广播地址192.168.1.255
子网掩码255.255.255.0
通配符掩码0.0.0.255
可用 IP 范围192.168.1.1 - 192.168.1.254
可用主机数254
IP 类型私有地址

右侧还有二进制展示,能直观看到网络位和主机位的分界。

子网掩码和 CIDR 的本质

理解工具输出的前提,是搞清楚子网掩码在做什么。

一个 IPv4 地址是 32 位二进制。比如 192.168.1.100,写成二进制是:

11000000.10101000.00000001.01100100

子网掩码也是 32 位,前 N 位全是 1,后面全是 0。/24 的子网掩码是:

11111111.11111111.11111111.00000000
写成十进制:255.255.255.0

网络地址 = IP 地址 AND 子网掩码(按位与):

11000000.10101000.00000001.01100100   (192.168.1.100)
AND
11111111.11111111.11111111.00000000   (255.255.255.0)
=
11000000.10101000.00000001.00000000   (192.168.1.0)

这就是为什么同一个 /24 网段里的所有 IP,前三组数字必须相同——它们共享相同的网络位。

广播地址 = 网络地址的主机位全部置 1:

11000000.10101000.00000001.11111111   (192.168.1.255)

主机位有 8 位(32-24=8),所以有 2^8 = 256 个地址,减去网络地址和广播地址,剩 254 个可用主机 IP。

CIDR 前缀长度速查

不同前缀长度对应不同规模的网络,这是常用的对照关系:

CIDR子网掩码可用主机数典型用途
/8255.0.0.016,777,214大型私有网络(10.x.x.x)
/16255.255.0.065,534中型企业网络(172.16.x.x)
/24255.255.255.0254最常见,办公室局域网
/25255.255.255.128126半个 C 段,分隔子网
/26255.255.255.19262小型部门
/27255.255.255.22430服务器集群
/28255.255.255.24014极小网段,点对点链路
/30255.255.255.2522路由器互联(仅 2 个主机 IP)
/32255.255.255.2550单主机路由

记不住没关系,直接在计算器里输入前缀长度,结果一目了然。

子网划分:把大网段拆小

这是子网计算器最实用的功能之一。假设你有一个 10.0.0.0/22 的网段,需要给四个部门各分一个独立子网,每个部门不超过 60 台机器。

步骤一:确认 /22 的大小

输入 10.0.0.0/22,计算器显示:

  • 可用主机:1022 个(2^10 - 2)
  • IP 范围:10.0.0.1 - 10.0.3.254

步骤二:选择划分粒度

60 台机器需要至少 62 个地址(加网络地址和广播地址),对应 /26(2^6 = 64,可用 62)。

在计算器的"子网划分"面板,选择"按前缀长度划分",输入 /26,计算器自动列出所有 16 个子网:

10.0.0.0/26   可用:10.0.0.1  - 10.0.0.62
10.0.0.64/26  可用:10.0.0.65 - 10.0.0.126
10.0.0.128/26 可用:10.0.0.129- 10.0.0.190
10.0.0.192/26 可用:10.0.0.193- 10.0.0.254
10.0.1.0/26   可用:10.0.1.1  - 10.0.1.62
... (共 16 个)

给四个部门各取一个,剩下的留作扩展。

三个私有 IP 段

计算器会自动标注 IP 是否属于私有地址范围。私有地址不能在公网路由,只能在内网使用,三个保留段分别是:

范围CIDR可用地址数
10.0.0.0 - 10.255.255.25510.0.0.0/8约 1677 万
172.16.0.0 - 172.31.255.255172.16.0.0/12约 104 万
192.168.0.0 - 192.168.255.255192.168.0.0/16约 6.5 万

家用路由器默认用 192.168.1.0/24,AWS VPC 默认用 10.0.0.0/16,都在这三个范围内。

此外还有几个特殊段:

  • 127.0.0.0/8:回环地址(localhost = 127.0.0.1)
  • 169.254.0.0/16:链路本地地址(APIPA,DHCP 失败时自动分配)
  • 0.0.0.0/8:表示"本机",通常用于默认路由

实际场景:配置 AWS VPC

AWS 配置 VPC 时必须指定 CIDR 块,常见方案是 10.0.0.0/16,然后按可用区和功能划分子网。用计算器规划:

公共子网(放 Load Balancer、NAT Gateway):

10.0.0.0/24   可用区 A254 个地址)
10.0.1.0/24   可用区 B
10.0.2.0/24   可用区 C

私有子网(放应用服务器):

10.0.10.0/24  可用区 A
10.0.11.0/24  可用区 B
10.0.12.0/24  可用区 C

数据库子网(最高隔离):

10.0.20.0/24  可用区 A
10.0.21.0/24  可用区 B

用计算器逐一验证每个段的范围和大小,再填入 AWS 控制台,不容易填错。

实际场景:Nginx 访问控制

Nginx 的 allow / deny 指令支持 CIDR 格式:

# 只允许公司内网和 VPN 访问管理后台
location /admin {
    allow 192.168.1.0/24;   # 公司局域网
    allow 10.8.0.0/24;      # VPN 网段
    deny  all;
}

如果你知道 IP 范围但不确定 CIDR 写法,在计算器里试一下:输入 192.168.1.0/24,确认它的范围是 192.168.1.0 - 192.168.1.255,没问题再写进配置。

反过来,如果给你一个范围 10.0.4.0 - 10.0.7.255,计算器可以帮你确认对应的 CIDR 是 10.0.4.0/22

超网(Supernetting)

子网划分是把大网段拆小,超网是把多个小网段合并成一个。比如你有四个相邻的 /26

10.0.0.0/26
10.0.0.64/26
10.0.0.128/26
10.0.0.192/26

合并后是一个 /2410.0.0.0/24

判断能否合并的关键:起始 IP 必须是合并后网段的网络地址,即起始 IP 的主机位(按合并后的掩码计算)全为 0。计算器会自动检查这个条件,不满足的话会给出提示。

IPv6 简介

工具同样支持 IPv6 子网计算。IPv6 地址是 128 位,写成 8 组十六进制,比如:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

前缀长度的含义和 IPv4 相同,常见的是 /48(分配给企业)、/56(分配给家庭)、/64(单个子网标准长度)。一个 /64 有 2^64 ≈ 1.8×10^19 个地址,远超 IPv4 整个地址空间,所以 IPv6 不需要像 IPv4 那样精打细算地划分子网。


子网计算不是很难,但手算容易出错,尤其是 /22/23 这类跨 C 段的情况。把计算交给工具,把精力放在架构决策上——选哪个网段、怎么划分层次、预留多少空间——这才是值得花时间的部分。

本系列其他文章


原文发布于 陈广亮的技术博客,欢迎关注获取更多前端与 AI 开发内容。