IPv4 与 IPv6:地址、双栈与兼容性
IPv4 和 IPv6 是互联网协议的两个版本,如今都在互联网上运行。IPv4 地址长 32 位,IPv6 地址长 128 位。IPv6 地址空间更大,并不会自动让连接更快或更安全。性能和暴露程度取决于路由、网络和配置。
地址格式与网络前缀
IPv4 通常写成四个十进制数,例如 192.0.2.10。IPv6 使用以冒号分隔的十六进制数组;连续的全零组可以用 :: 缩写一次,例如 2001:db8::10。这两个示例地址段都专门保留用于文档,并非真实在线的公网服务器。斜杠后面是网络前缀长度:192.0.2.0/24 和 2001:db8::/32 指的是地址块,而不是单个主机。您可以使用 2IP IP 计算器练习 IPv4 子网计算。
设备为什么会显示多个地址
一台电脑可能同时拥有局域网中的私有 IPv4 地址、经 NAT 后对外可见的公网 IPv4 地址、一个 IPv6 链路本地地址,以及一个或多个全局 IPv6 地址。在双栈环境中,应用程序会选择一个可用的地址族。DNS 中的 A 记录指向 IPv4 目的地,AAAA 记录指向 IPv6 目的地。网站可以同时发布这两种记录,但仅有 AAAA 记录并不能证明服务器、路由和防火墙都允许 IPv6 连接。IPv6 规范描述了数据包格式和跳数限制(Hop Limit)。
NAT 与应用兼容性
由于 IPv4 地址空间有限,运营商通常会使用 NAT,有时还会使用运营商级 NAT,让多台设备共用公网地址。IPv6 的地址要多得多,设备可以拥有全局地址,而无需这种强制性的地址共享。但这并不意味着可以不要防火墙规则。只支持 IPv4 的应用,不会因为修改了 DNS 就突然支持 IPv6。不同地址族之间的通信,需要合适的转换机制,或者两端同时支持两个版本。
排查只有一个版本出问题的情况
如果网站无法加载,请查询它的 A 和 AAAA 记录,并分别比较通过 IPv4 和 IPv6 的访问情况。如果只有一个版本能用,请检查该版本的地址、路由、DNS 结果,以及路由器和服务器上的防火墙规则。性能上的差异可能源于不同的路径或网络互联方式,而不是地址位数的多少。2IP IP 地址查询工具报告的是这一次请求所使用的地址;其他应用或请求可能会使用另一个地址。报告故障之前,请记下时间和地址族。