IPv4 与 IPv6 基础:为什么机场越来越多提到 IPv6

6.3k 词

摘要:IPv4 地址已经基本耗尽,IPv6 地址空间几乎无限。这个差异不只是技术课本上的知识点——在代理使用场景中,IPv6 正变得越来越重要。从流媒体解锁到抗封锁能力,从 IP 信誉到隐私保护,IPv4 和 IPv6 的选择直接影响你的使用体验。本文从基础概念出发,解释两种协议的区别以及它们在代理场景中的实际意义。


IPv4:互联网的地基

基本概念

IPv4(Internet Protocol version 4)是互联网最早广泛使用的网络层协议,定义于 1981 年的 RFC 791。它使用 32 位地址,通常以四个十进制数字表示,每个数字的范围是 0-255,用点号分隔:

1
2
3
192.168.1.1
203.0.113.45
142.250.80.46

32 位地址空间意味着 IPv4 的理论地址总量是 2^32 = 约 43 亿个。这个数字在互联网诞生初期看起来足够用——毕竟当时全球只有几千台联网设备。但互联网的爆炸式增长远超预期。

地址耗尽的现实

IANA(互联网号码分配机构)在 2011 年将最后的 IPv4 地址块分配给五大地区注册机构(RIR)。此后,各 RIR 的可分配地址池也陆续见底:

  • APNIC(亚太地区):2011 年
  • RIPE NCC(欧洲/中东):2012 年
  • LACNIC(拉丁美洲):2014 年
  • ARIN(北美):2015 年
  • AFRINIC(非洲):2017 年

现在要获取新的 IPv4 地址,主要途径是通过二级市场购买——从不再需要大量地址的组织手中转让。IPv4 地址的交易价格在过去几年稳步上涨,单个地址的价格可以达到数十美元。这个成本最终会传导到 VPS 服务商和机场运营者的定价中。

地址复用技术

为了应对地址不足,互联网发展出了几种延缓耗尽的技术。

NAT(网络地址转换) 是最核心的一个。你家里的路由器可能有几十台设备(手机、电脑、智能音箱、摄像头),但运营商只给你分配了一个公网 IPv4 地址。路由器通过 NAT 让所有内网设备共享这一个地址。进一步的,一些运营商甚至实行 CGNAT(运营商级 NAT)——多个用户家庭共享同一个公网 IPv4 地址。

NAT 解决了”地址不够分”的眼前问题,但也带来了很多副作用。端口映射复杂、P2P 连接困难、在线游戏联机受阻、某些应用无法正常工作——这些问题在使用 CGNAT 的网络环境中尤为突出。

保留地址段 也是缓解方案的一部分。RFC 1918 定义了三个私有地址段(10.0.0.0/8172.16.0.0/12192.168.0.0/16),这些地址可以在内网中无限重复使用,但不能直接在公网上路由。你在家连接 Wi-Fi 后看到的 192.168.1.x 地址就属于此类。


IPv6:面向未来的答案

基本概念

IPv6(Internet Protocol version 6)使用 128 位地址,是 IPv4 地址长度的四倍。但地址空间不是线性增长——128 位意味着 2^128 个可能的地址,这个数字约为 3.4 x 10^38

为了直观感受这个数字有多大:如果把所有 IPv6 地址平均分配给地球上的每一粒沙子(估计约 7.5 x 10^18 粒),每粒沙子大约能分到 4.5 x 10^19 个地址。换句话说,IPv6 的地址永远不会用完。

IPv6 地址的表示方式和 IPv4 完全不同,使用八组四位十六进制数字,用冒号分隔:

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

为了简化书写,连续的零可以省略。上面的地址可以简写为:

1
2001:db8:85a3::8a2e:370:7334

其中 :: 表示连续的全零段被省略了。

IPv6 的地址分配逻辑

IPv6 不只是”地址变长了”,它的分配逻辑也完全不同于 IPv4。

在 IPv4 中,一台服务器通常只有一个公网 IP 地址。在 IPv6 中,一个终端用户或服务器通常会被分配一整个前缀(prefix)——比如一个 /64 的前缀包含 2^64 个地址(约 1.8 x 10^19 个),一个 /48 的前缀包含 2^80 个地址。

这意味着一台 VPS 服务器可能拥有几千万乃至更多个可用的 IPv6 地址,随时可以切换使用其中的任何一个。这个特性在代理场景中有非常重要的意义——后文会详细说明。

IPv6 的技术改进

除了地址空间的飞跃外,IPv6 在协议设计上也做了多处改进:

简化的报头结构。 IPv4 的报头包含很多可选字段,路由器在处理每个数据包时都需要解析这些字段。IPv6 将报头简化为固定长度(40 字节),将可选信息移到扩展报头中。这使得路由器处理 IPv6 数据包的效率理论上更高。

取消了 NAT 的需求。 IPv6 地址足够多,每台设备都可以拥有全球唯一的公网地址,不再需要 NAT。这简化了网络架构,有利于端到端通信——P2P 应用、在线游戏、IoT 设备通信都能因此受益。

内置 IPsec 支持。 IPv6 协议栈原生支持 IPsec(网络层加密),虽然实际部署中这一点并不总是被启用。

改进的多播和任播。 IPv6 取消了广播(broadcast),改用更精细的多播(multicast)和任播(anycast)机制。


双栈:两个世界的桥梁

什么是双栈

由于 IPv4 和 IPv6 不能直接互通(它们是完全不同的协议),从 IPv4 到 IPv6 的过渡不可能一步完成。双栈(Dual Stack) 是当前最主流的过渡方案:一台设备或服务器同时配置 IPv4 和 IPv6 地址,两种协议栈并行运行。

当你访问一个网站时,你的设备会同时通过 DNS 查询 A 记录(IPv4 地址)和 AAAA 记录(IPv6 地址)。如果目标网站同时提供两种地址,你的操作系统会根据配置和网络条件选择使用哪一种协议进行连接。

Happy Eyeballs 算法

现代操作系统通常使用 Happy Eyeballs(RFC 6555 / 8305)算法来选择协议。这个算法的核心思想是:同时发起 IPv4 和 IPv6 连接尝试,优先等待 IPv6 的结果(因为 IPv6 是未来方向),但如果 IPv6 连接在短时间内没有成功建立,就立刻使用 IPv4。

这样做的好处是:如果你的 ISP 支持 IPv6 且连接质量好,你会自动使用 IPv6;如果 IPv6 不通或太慢,你不会因此卡住,系统会很快切换到 IPv4。

代理场景中的双栈

在代理场景中,”双栈”的含义有两层:

你本地到代理服务器的连接 可以是 IPv4 或 IPv6。这取决于你的 ISP 是否提供 IPv6 以及代理客户端的配置。

代理服务器到目标网站的连接(出口) 可以是 IPv4 或 IPv6。这取决于代理服务器是否有 IPv6 出口以及服务端的配置。

这两层是独立的。你和代理服务器之间用 IPv4 连接,但代理服务器可以通过 IPv6 出口访问目标网站——反过来也一样。在解锁场景中,出口使用 IPv4 还是 IPv6 往往直接决定了能不能访问特定内容。关于 IPv4/IPv6 出口对解锁的影响,可以参考 IPv4 与 IPv6 在解锁中的作用


IPv6 在代理场景中为什么重要

IP 信誉与黑名单

前面提到,IPv4 地址数量有限,且数据中心常用的 IPv4 地址段已经被 IP 信誉数据库(如 MaxMind、IP2Location、ipinfo.io 等)详尽标注。流媒体平台、AI 服务、银行网站等可以轻松查询一个 IPv4 地址是来自住宅用户还是数据中心,从而决定是否允许访问。

IPv6 的情况完全不同。由于地址空间极其庞大,信誉数据库对 IPv6 的覆盖率远不如 IPv4。很多 IPv6 地址段尚未被准确分类,流媒体平台查询时可能得到不确定的结果——在不确定时,平台通常倾向于放行而非封锁,以避免误伤正常用户。

关于 IP 类型和信誉的更详细解释,可以参考 什么是原生 IP、广播 IP、住宅 IP

抗封锁能力

从 GFW 的角度看,IPv6 也增加了封锁的难度。

IPv4 地址总量有限,GFW 可以建立完整的 IPv4 地址信誉库,并对可疑的 IP 段实施精准封锁。封一个 /24 段(256 个地址)的代价很小,因为这个范围内基本都是同类用途的服务器。

但封锁 IPv6 段面临不同的挑战。一个 /48 前缀包含的地址数量是天文数字,代理运营者可以在同一前缀内轻松轮换出口地址。而如果 GFW 选择封锁整个 /48 甚至 /32 前缀,可能会连带影响大量无关的正常服务和用户——这种”连坐”效应使得大范围封锁 IPv6 的成本和风险显著高于 IPv4。

解锁潜力

在流媒体解锁场景中,IPv6 的优势已经在实践中被反复验证。同一台服务器的 IPv4 出口被 Netflix 封锁,但 IPv6 出口能正常解锁——这种情况非常常见。

原因综合了上面提到的几个因素:IPv6 地址的信誉数据不完善、ISP 分配的 IPv6 段自带”住宅”属性、以及地址轮换的便利性使得平台难以维持持久有效的封锁。

关于 IPv4/IPv6 在解锁中的具体表现差异和配置方法,参见 IPv4 与 IPv6 在解锁中的作用


代理客户端如何处理 IPv4/IPv6

客户端配置选项

主流代理客户端(mihomo、Sing-box、Xray 等)都提供了 IPv4/IPv6 相关的配置选项。以 mihomo 为例,核心配置项包括:

1
2
3
4
5
# mihomo 配置示例
ipv6: true # 是否启用 IPv6 支持
dns:
ipv6: true # DNS 是否查询 AAAA 记录
prefer-h3: false # 是否优先使用 HTTP/3 (QUIC)

ipv6: true 表示客户端允许使用 IPv6 协议。如果设为 false,客户端会忽略所有 IPv6 相关的 DNS 结果和连接。

DNS 解析与协议选择

当你的客户端访问一个网站时,DNS 解析会同时查询 A 记录(IPv4)和 AAAA 记录(IPv6)。如果目标网站同时提供两种记录,客户端需要决定使用哪一个。

这个决定受到多个因素影响:

  1. 客户端配置:是否启用了 IPv6 支持
  2. 代理服务器能力:服务器是否有 IPv6 出口
  3. DNS 返回结果:目标网站是否有 AAAA 记录
  4. IP 优先级设置:某些客户端允许设置”优先 IPv4”或”优先 IPv6”

如果你使用 fake-ip 模式(关于 fake-ip 的详细说明,参见 Fake-IP 与 Redir-Host 模式),DNS 解析的协议选择实际上发生在代理服务器端,而非客户端本地。客户端只负责将请求转发给代理服务器,由服务器决定使用 IPv4 还是 IPv6 出口连接目标。

常见配置建议

如果你的 ISP 和代理服务器都支持 IPv6,建议在客户端配置中启用 IPv6 支持。这能让你享受到 IPv6 出口在解锁方面的潜在优势。

如果你的 ISP 不支持 IPv6,也不一定需要禁用客户端的 IPv6 选项。因为你到代理服务器的连接可以走 IPv4,而代理服务器仍然可以通过 IPv6 出口访问目标网站——前提是服务器端配置了 IPv6 出口。

如果你遇到连接问题,尝试切换 IPv6 的启用状态是一个有效的排查手段。某些情况下,IPv6 配置不当会导致连接超时或路由异常。


检查你的 IPv6 支持状态

本地 ISP 的 IPv6 支持

想知道你的网络是否支持 IPv6,最简单的方法是访问以下测试网站:

如果测试结果显示你的网络同时拥有 IPv4 和 IPv6 地址,那么你的 ISP 提供了双栈接入。如果只有 IPv4 地址,说明你的 ISP 尚未为你启用 IPv6。

在中国大陆,主要运营商(电信、联通、移动)在过去几年已经大规模部署了 IPv6。如果你使用的是比较新的宽带套餐,大概率已经有 IPv6 支持。但需要注意的是,你的路由器也需要支持 IPv6 并正确配置——有些老旧路由器可能默认关闭了 IPv6 功能。

代理节点的 IPv6 支持

要确认你的代理节点是否支持 IPv6 出口,可以在连接代理后访问 test-ipv6.comipv6-test.com。如果测试结果显示有 IPv6 地址,说明代理服务器提供了 IPv6 出口。

并非所有代理节点都支持 IPv6 出口。这取决于机场运营者是否在服务器上配置了 IPv6。如果你对 IPv6 出口有需求(特别是为了流媒体解锁),可以在选择机场时关注它是否提供 IPv6 出口节点。


常见问题与陷阱

IPv6 泄露

IPv6 泄露 是代理使用中一个常见但容易被忽视的问题。

场景是这样的:你的代理客户端配置了 IPv4 代理,但没有处理 IPv6 流量。当你访问一个同时提供 A 和 AAAA 记录的网站时,操作系统可能选择通过 IPv6 直接连接(绕过代理),而 IPv4 流量走代理。结果是:你以为自己在使用代理,但部分流量实际上直接暴露了你的真实 IPv6 地址。

解决方案:

  • 使用 TUN 模式接管系统全部流量(包括 IPv4 和 IPv6),确保没有流量能绕过代理。关于 TUN 模式的详细说明,参见 TUN 模式与系统代理
  • 在客户端中明确启用或禁用 IPv6:如果你的代理不支持 IPv6,最安全的做法是在客户端中禁用 IPv6(ipv6: false),这样所有流量都走 IPv4 通道。
  • 在操作系统层面禁用 IPv6(不推荐,因为可能影响其他应用)。

IPv6 路由问题

某些网络环境中,IPv6 虽然”存在”但路由质量很差——延迟高、丢包多、速度慢。这时候系统的 Happy Eyeballs 算法可能仍然偶尔选择 IPv6,导致体验不佳。

如果你发现开启 IPv6 后网速反而变慢了,可以尝试在代理客户端中设置”优先 IPv4”(prefer-h3: false 配合适当的 DNS 配置),或在测试确认 IPv6 路由质量不佳后暂时关闭 IPv6 支持。

IPv6 与分流规则

如果你在分流规则中使用了 IP-CIDR 规则匹配 IPv4 地址段,这些规则不会匹配 IPv6 地址。你需要使用 IP-CIDR6 规则来匹配 IPv6 地址段。

同样,GEOIP 规则对 IPv4 和 IPv6 都有效——GeoIP 数据库同时包含 IPv4 和 IPv6 的地理归属信息。但在某些旧版本的 GeoIP 数据库中,IPv6 的覆盖率可能不如 IPv4 完整,导致部分 IPv6 地址无法被正确归类。

运营商的 IPv6 限制

部分 ISP 虽然提供了 IPv6 接入,但在 IPv6 的国际出口带宽上限制较多。也就是说,即使你能用 IPv6,但出境走 IPv6 的速度可能不如 IPv4。这种情况因地区和运营商而异,需要实际测试才能确定。


常见问题

IPv6 会完全取代 IPv4 吗?

理论上是的,但实际过渡需要很长时间。IPv4 和 IPv6 是不兼容的协议,全球还有大量只支持 IPv4 的设备和网络基础设施。在可预见的未来,双栈并存将是常态。对代理用户来说,两种协议都需要了解和考虑。

我的 ISP 没有 IPv6,我还能使用 IPv6 出口的代理节点吗?

可以。你本地到代理服务器的连接使用 IPv4,代理服务器到目标网站的连接使用 IPv6——这两段是独立的。只要代理服务器本身配置了 IPv6 出口,它就可以通过 IPv6 访问目标网站,而你不需要本地 IPv6 支持。

启用 IPv6 会影响安全性吗?

如果代理客户端正确配置了 IPv6 流量的处理(特别是使用 TUN 模式),启用 IPv6 不会降低安全性。最大的风险是前面提到的 IPv6 泄露——部分流量绕过代理直接通过 IPv6 发出。使用 TUN 模式可以有效避免这个问题。

机场节点标注的”IPv6”是什么意思?

通常有两种含义。第一种是节点服务器支持 IPv6 入站——你可以通过 IPv6 连接到这个代理服务器(前提是你的 ISP 支持 IPv6)。第二种是节点服务器支持 IPv6 出口——代理服务器可以通过 IPv6 出口访问目标网站。后者在流媒体解锁场景中更有价值。具体含义需要参考机场的文档说明。

IPv6 比 IPv4 更快吗?

不一定。IPv6 在协议层面的开销略低(简化的报头),但实际速度取决于网络路由质量、ISP 的 IPv6 出口带宽、目标服务器的 IPv6 网络质量等因素。在某些线路上 IPv6 更快,在另一些线路上 IPv4 更快——没有一概而论的结论。