跳到正文
ipaddress.si

IPv6 详解

用十六进制书写的 128 位,足以容纳未来接入的每一台设备。下面教你如何读懂它。

查询 IPv6 地址

为什么会有 IPv6

IPv6(RFC 8200)设计于 20 世纪 90 年代,当时人们已经清楚 IPv4 的 43 亿个地址终将耗尽。IPv6 地址有 128 位:2¹²⁸,约 3.4 × 10³⁸ 个地址。关键不在于数字有多大,而在于每个网络都能获得所需的地址空间,每台设备都能重新拥有全球可达的地址——无需 NAT。

IPv6 并不是 IPv4 的升级版;两种协议并行运行(双栈)。如今,访问大型服务的流量中有很大且不断增长的比例使用 IPv6,移动网络尤其如此。

记法:十六进制分组

IPv6 地址写成八组、每组四个十六进制数字,用冒号分隔:

2001:0db8:0000:0000:0000:ff00:0042:8329

每组 16 位。十六进制数字包括 0–9 和 a–f;不区分大小写,但习惯上用小写。

压缩规则

长串的零很常见,因此有两条缩写规则(RFC 4291),而 RFC 5952 规定了唯一正确的使用方式:

  1. 去掉每组的前导零:0db8 → db8,0042 → 42,0000 → 0。
  2. 把一段连续的全零组替换为 ::——取最长的一段,长度相同时取第一段,且至少要覆盖两组。:: 只能出现一次,否则地址会产生歧义。

于是 2001:0db8:0000:0000:0000:ff00:0042:8329 变成 2001:db8::ff00:42:8329。环回地址 0:0:0:0:0:0:0:1 写作 ::1,未指定地址则就是 ::。

在下方的浏览器中试试任意地址——它会并排显示完整形式和规范形式。

完整形式

2001
路由
0db8
路由
0000
路由
0000
子网
0000
接口
ff00
接口
0042
接口
8329
接口

压缩形式

2001:db8::ff00:42:8329

范围: 特殊用途 · Documentation (2001:db8::/32)

前缀与 /64

IPv6 与 IPv4 一样使用 CIDR 记法。一个典型的全局单播地址分为:

  • 路由前缀(通常为 /48 或 /56)——由运营商分配给站点。
  • 子网 ID——直到 /64 的各位,用于给站点内的网络编号。一个 /48 可容纳 65,536 个子网。
  • 接口标识符(最后 64 位)——标识设备在其网络中的身份。

单个局域网几乎总是 /64。无状态地址自动配置(SLAAC)依赖于此:设备自行选择接口标识符,如今出于隐私考虑会随机生成(RFC 8981),并定期更换。

你会遇到的地址类型

  • 全局单播 2000::/3——公网可路由地址。
  • 链路本地 fe80::/10——每个 IPv6 接口都有一个,仅在本地链路上有效,用于邻居发现和路由协议。
  • 唯一本地 fc00::/7(实际使用 fd00::/8)——相当于 IPv6 的私有地址(RFC 4193)。
  • 组播 ff00::/8——IPv6 没有广播,由组播组取而代之。
  • 环回 ::1 与未指定 ::。
  • IPv4 映射 ::ffff:0:0/96——IPv6 软件表示 IPv4 对端的方式,例如 ::ffff:192.0.2.1。
  • 文档用途 2001:db8::/32 和 3fff::/20——用于本页这样的示例。

特殊用途 IPv6 地址块

以下是保留 IPv6 地址块的完整列表,由本站分类器所使用的 IANA 注册表生成:

地址块用途参考全球可达
::/128Unspecified AddressRFC 4291否
::1/128Loopback AddressRFC 4291否
::ffff:0:0/96IPv4-mapped AddressRFC 4291否
64:ff9b::/96IPv4-IPv6 Translation (NAT64)RFC 6052是
64:ff9b:1::/48Local-use IPv4/IPv6 TranslationRFC 8215否
100::/64Discard-Only Address BlockRFC 6666否
2001::/32TEREDORFC 4380否
2001:2::/48BenchmarkingRFC 5180否
2001:db8::/32DocumentationRFC 3849否
2001:10::/28Deprecated (ORCHID)RFC 4843否
2001:20::/28ORCHIDv2RFC 7343是
2002::/166to4RFC 3056否
3fff::/20DocumentationRFC 9637否
5f00::/16Segment Routing (SRv6) SIDsRFC 9602否
fc00::/7Unique-LocalRFC 4193否
fe80::/10Link-Local UnicastRFC 4291否
ff00::/8MulticastRFC 4291否

双栈,以及本站如何检测你的两个地址

浏览器一次只用一种地址族建立连接。两者都可用时,通常优先使用 IPv6(Happy Eyeballs,RFC 8305)。为了同时显示你的两个地址,ipaddress.si 会让浏览器额外访问两个主机名:一个只有 IPv4(A)记录,另一个只有 IPv6(AAAA)记录。各自看到的就是你在该地址族下的地址。如果 IPv6 请求失败,说明你的连接没有可用的 IPv6。

常见问题

如何知道我有没有 IPv6?
打开本站首页。如果显示了 IPv6 地址——无论是作为主地址还是在 IPv6 一行中——你的连接就支持 IPv6。
IPv6 比 IPv4 快吗?
本身并不更快,但有可能更快:IPv6 流量常常绕过运营商级 NAT,少了一跳和一个有状态的瓶颈。
用 IPv6 还需要防火墙吗?
需要。没有 NAT 时,设备拥有全球可路由的地址;阻止未经请求的入站流量的状态防火墙,提供了 NAT 过去隐含提供的保护。
为什么我的 IPv6 地址总在变?
隐私扩展(RFC 8981)会生成并轮换临时接口标识符,使你的设备无法在不同网络间被追踪。/64 前缀通常保持不变。