50% off 所有套餐限时优惠,起价 $2.48/mo
10 min left
Security & Networking

什么是子网掩码:用子网划分IP地址

Nick Silver By Nick Silver 10 min read Updated Feb 20, 2025
什么是子网掩码

每台连接到互联网的设备都通过 IP 地址与其他设备通信、定位和交互。IP 地址是分配给网络中每台设备的唯一数字组合,就像家庭地址一样,它能定位并区分街道上某栋房子与其他房子的位置。

虽然典型的 IPv4 家庭网络中 IP 地址数量不多(例如 192.168.0.0/24 提供 256 个地址),但在 IPv6 网络上,可用地址数量可达 18 百万亿个。

不过,由于子网划分和子网掩码的存在,你家里的设备其实用不到所有这些地址。那么问题来了:什么是子网?什么是子网掩码?IPv4 和 IPv6 的子网划分是如何工作的?你又该如何用子网速查表来配置网络?这篇文章会一一解答。

我整理了一份速查表,涵盖子网掩码、IPv6 CIDR 前缀长度,以及如何配置 IPv4 或 IPv6 网络。记得查看本文末尾的内容!速查表还包含 IP 地址和网络配置的实用信息。

什么是子网掩码?

An IPv4 address is made up of 32 bits, which are then divided into 8-bit segments, which are commonly referred to as “octets.” These octets are typically allocated to either the network ID or host ID. If you need more information about IPv4 and IPv6, read our blog post titled “IPv4 对比 IPv6:IPv6 如何取代 IPv4.”

网络 ID 和主机 ID

网络 ID 或网络地址用来标识 IP 地址属于哪个网络。当数据包在互联网或本地网络上传输时,路由器会根据网络 ID 判断目的地是否在同一网络中,还是需要转发到其他网络。网络 ID 告诉路由器应该将数据包路由到哪个网络。

此外,网络ID还能帮助大型组织或环境中区分不同的子网。每个子网拥有独立的网络ID,设备可以在本地子网内通信,也可以通过路由器访问其他子网。当然,同一网络中的所有设备都共享相同的网络ID。

接下来是IP地址中的主机ID部分。这部分定义了网络内唯一设备(主机)的身份。主机ID用来区分网络中的不同设备,确保网络能正确地向目标设备发送和接收流量。

子网掩码

现在我们来讨论子网掩码。子网掩码是一个32位数字(类似于IP地址),它定义了上面提到的那些八位字节中,哪些被分配给网络ID,哪些被分配给主机ID。

IPv4 Subnet Mask

假设你有一个 IPv4 地址,看起来像 192.168.1.10,子网掩码看起来像 255.255.255.0。子网掩码中重复出现的数字告诉我们,IP 地址的前三个八位字节或 24 位(即 192.168.1.0)代表网络部分(网络 ID)。 

这是因为,如我之前所说,同一网络中所有设备的网络部分共享同一个网络 ID,因此这个数值在网络中的所有设备间是固定的。至于主机 ID 部分,最后一个八位字节表示可以分配给设备的可用 IP 地址数量。

你可能会问,我怎么知道有多少个IP地址可用于设备呢?当子网掩码显示IP地址为主机ID预留了8位时,这意味着有8个位置可以放置0或1。 

这意味着在 IPv4 地址中,可以为设备分配 2^8 或 256 个 IP 地址。不过需要注意的是,其中两个地址始终保留给网络地址(192.168.1.0)和广播地址(192.168.1.255)。

IPv6 Subnet Mask

抛开 IPv4 中的子网掩码不谈,我们来聊聊 IPv6 中的子网掩码。与 IPv4 那样使用点分十进制表示法(255.255.255.0)来区分网络 ID 和主机 ID 的方式不同,IPv6 采用前缀长度的方式,这是一套更新的 IP 分配和表示法。

这个系统叫做无类别域间路由(CIDR)。它用可变长子网掩码(VLSM)替代了之前基于类别的IP分配方式。你可以了解更多关于CIDR的信息,以及它与之前系统的区别。 here.

至于CIDR符号如何表示网络和主机ID的部分,通常在IPv6地址末尾加上斜杠(/),后面跟一个数字,表示分配给网络部分的比特数。这种CIDR符号叫做前缀长度。

注意,在IPv4地址中,每个数字代表8比特或一个八位组,而在IPv6中,两个冒号之间的每个数字和字母组合代表16比特。例如:

2001 (hex) → 0010000000000001 (binary)

IPv6地址的完整二进制形式 2001:0db8:85a3:0000:0000:8a2e:0370:7334 is:

0010000000000001 0000110110111000 1000010110100011 0000000000000000
0000000000000000 1000101000101110 0000001101110000 0111001100110100

此外,为了缩短IPv6地址,与其包含所有零块(IPv6地址中的16比特零块),可以用双冒号(::)替代。16比特零块的数量可以通过从IPv6地址的总块数(8块)中减去显示的非零块数来计算。 For instance:

2001:db8:1234::/64 → 2001:db8:1234 → 总共8个块 - 3个非零块 = 5个零块

所以,完整地址是 2001:0db8:1234:0000:0000:0000:0000:0000/64.

基础知识讲完了,现在看一个IPv6子网掩码的例子:

如果 IPv6 地址如下所示: 2001:db8:1234::/64 

前64比特用于网络部分: 2001:db8:1234

剩余的64比特(128-64=64)用于主机部分: 0000.0000.0000.0000.

IPv4 和 IPv6 子网速查表

虽然子网掩码和子网划分听起来像是同一个概念,但它们做的是完全不同的事情。子网划分本质上是将与网络一起提供的大量IPv4或IPv6地址分解,以便更好地管理不同部门或设备,并提高安全性。

比如在企业环境中,财务部门可能有自己的子网,防止其他部门的未授权访问。在家庭环境中,将网络分成两个子网,一个用于个人设备,一个用于物联网(IoT)设备,比如智能音箱或扫地机器人,可以提高安全性和流量管理,因为物联网设备会不断与云服务通信,通常容易遭受安全威胁。

1993年之前,子网划分是通过类别进行的,一个网络要么有254个、65534个或超过1600万个IP地址(用于设备),你无法像现在这样把它们分成更小的网络。

不过,得益于CIDR的发展,你现在可以将任何大小的网络分割成任意数量的更小网络。接下来,我们来看看如何在IPv4和IPv6中进行子网划分,以及如何使用我们方便的子网速查表来配置你的网络。

IPv4 子网速查表 

假设你有一个网络,比如192.168.1.0/24,它为主机部分提供256个IP地址。虽然你可以通过子网掩码(255.255.255.0)计算出多少个IP分配给网络部分和主机部分,但通过IP末尾的/24,你可以推断出既然24比特分配给网络部分,那么8比特或256个(2^8=256)地址用于主机部分。

如果我们想把这个网络分成两个128地址的子网,我们从网络部分借用一个比特,这会导致以下设置和变化:

  • 新子网掩码:/25或255.255.255.128
  • 每个子网的主机数:128
  • 子网1:192.168.1.0/25(可用地址126个,从192.168.1.1到192.168.1.126)
  • 子网2:192.168.1.128/25(可用地址126个,从192.168.1.129到192.168.1.254)

通过这个CIDR过程,你可以随意划分任何网络,只要你有两个可用的IP地址(不计用于广播和网络地址的两个IP)。所以,对于有254个可用IP的/24网络,你可以创建64个子网,每个子网包含2个可用IP地址;不过,这么少的主机数量通常用于点对点连接。

IPv6 子网速查表

IPv6子网划分特别重要,因为IPv6地址空间提供2^128或340个无限位(34后面跟37个零)的唯一IP地址。一个典型的IPv6网络通常用/64 CIDR设置,为网络部分分配64比特,为主机部分分配另外64比特,这样你就有2^64或18个五十垓(18后面跟18个零)的唯一地址。

考虑到可用IPv6地址的巨大数量,即使使用典型的/64 CIDR,对IPv6网络进行子网划分也极其有益,因为网络管理员可以根据位置、部门或功能对设备进行分组管理,监控它们的流量,应用安全策略,并更轻松地配置路由器。

虽然/64子网是IPv6 IP子网划分最常用的形式,因为像SLAAC或无状态地址自动配置(SLAAC)这样的功能允许设备根据它们连接的网络自动生成IP地址,无需DHCP服务器,但你可以轻松将IPv6网络分成任意数量的子网。

假设你有一个典型的/64 IPv6网络,比如2001:db8:abcd:1000::/64,如果我们从网络部分借用4比特,我们可以将网络分成16个子网,这会导致以下变化:

  • Original subnet: 2001:db8:abcd:1000::/64
  • New subnet: /68
  • Number of subnets: 2^(从网络地址借用的比特位数)= 2^4=16 个子网
  • First subnet: 2001:db8:abcd:1000:0000::/68
  • Second subnet: 2001:db8:abcd:1000:1000::/68
  • Third subnet: 2001:db8:abcd:1000:2000::/68
  • … up to 2001:db8:abcd:1000:f000::/68
  • 2001:db8:abcd:1000:前 64 位定义全局路由前缀。
  • 0000 – f000: 接下来的 4 位用于子网划分。
  • Host Portion:其余 60 位用于主机地址。(其余的 "::\" 表示三个 16 位块)
  • 每个 /68 子网有 2^60 = 115 京个可能的主机地址。 

Final Thoughts

子网划分是每个网络的关键部分,无论是 IPv4 子网划分还是 IPv6 子网划分。希望这篇文章能够 子网划分速查表 我提供的内容可以帮助你更轻松地设置和划分网络子网。 

FAQs

什么是子网掩码?

在 IPv4 中,子网掩码是一个 32 位数字(类似于 IP 地址),用来定义哪些八位字节分配给网络 ID,哪些分配给主机 ID。在 IPv6 中,IPv6 不使用 IPv4 那样的子网掩码(例如 255.255.255.0),而是使用前缀长度表示法来指示地址中有多少位用于网络部分。

IPv4 和 IPv6 如何进行子网划分?

通过 CIDR(无类域间路由)技术,我们可以从网络位中借用比特位,将 IPv4 或 IPv6 网络分割成任意数量的子网。不过,对于 IPv4,你必须至少保留两个可用 IP 地址(不包括广播地址和网络地址所需的两个 IP)。举个例子,如果你有一个包含 256 个 IP 地址的网络(192.168.1.0/24),想把它分成两个各 128 个 IP 的子网,你需要从网络位中借用一个比特位,得到这两个子网:192.168.1.0/25 和 192.168.1.128/25

IPv4 和 IPv6 有子网划分速查表吗?

对!计算子网划分时能分配多少个 IP 地址确实很复杂,尤其是涉及 IPv6 的时候。这就是为什么我整理了一份详细的子网速查表,让你的子网划分工作更轻松。它同时也是 IPv6 速查表和网络速查表,所以内容非常全面!

Share

博客更新

Keep reading.

MikroTik L2TP VPN 指南的 Cloudzy 标题图像,展示笔记本电脑通过发光的蓝色和金色数字隧道连接到服务器机架,并配有盾牌图标。
Security & Networking

MikroTik L2TP VPN 设置(含 IPsec):RouterOS 指南(2026)

在这个 MikroTik L2TP VPN 设置中,L2TP 处理隧道,IPsec 处理加密和完整性验证。将两者结合使用可以获得原生客户端兼容性,无需第三方工具。

Rexa CyrusRexa Cyrus 9 min read
终端窗口显示 SSH 警告信息,提示远程主机标识已更改。深蓝绿色背景上显示修复指南标题和 Cloudzy 品牌标识。
Security & Networking

警告:远程主机标识已更改及修复方法

SSH 是一种安全网络协议,可在系统之间创建加密隧道。在需要远程访问计算机但无需图形界面的开发者中仍然广泛使用。

Rexa CyrusRexa Cyrus 10 min read
DNS 服务器故障排查指南插图,深色背景上显示警告符号和蓝色服务器,用于 Linux 名称解析错误。
Security & Networking

名称解析临时失败:含义和修复方法?

使用 Linux 时,在尝试访问网站、更新软件包或执行需要网络连接的任务时,可能会遇到名称解析临时失败错误。

Rexa CyrusRexa Cyrus 12 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。