不要混淆地址族与代理协议
IPv4 和 IPv6 是网络层地址体系;HTTP、HTTPS 或 SOCKS5 是客户端如何连接代理的协议。一个 SOCKS5 代理入口可能使用 IPv4,也可能使用 IPv6,并且它访问目标时还可能选择另一地址族。
因此“支持 SOCKS5”不能推导出“支持 IPv6 出口”,反之亦然。采购和验收应分别确认入口地址族、目标解析、出口地址族和白名单能力。
双栈为什么会出现偶发差异
域名可能同时返回 A 与 AAAA 记录。RFC 8305 的 Happy Eyeballs 思路允许客户端在双栈环境中尝试不同地址,以减少某一地址族不可用造成的等待。具体选择仍由操作系统和客户端实现决定。
如果 IPv6 路径质量差、代理只支持某一地址族,或目标对白名单配置不完整,同一域名可能出现“有时成功、有时失败”。
四层测试矩阵
| 层 | 检查内容 |
|---|---|
| 客户端 | 本机是否有可用 IPv4/IPv6,应用是否支持 |
| DNS | A/AAAA 结果、解析位置与缓存 |
| 代理入口 | 入口主机能否从两种地址族连接 |
| 代理出口 | 目标看到的地址族、地址归属与稳定性 |
分别强制 IPv4 与 IPv6 测试,不要只依赖一次自动选择结果。
特殊地址不能当公网出口
IPv4 私有地址、IPv6 回环/链路本地/特殊用途地址具有特定作用,不代表互联网可达。IANA 维护 IPv4 与 IPv6 特殊用途地址注册表;判断地址是否可作为公网出口时,应查看注册表及实际路由,而不是只看字符串形式。
选择与回退
如果合作方、客户端或白名单系统尚不完整支持 IPv6,优先保证 IPv4 路径稳定,同时保留 IPv6 测试计划。若需要双栈,SLA 中分别约定两种地址族的成功率和故障处理。
回退不应靠永久关闭 IPv6 掩盖问题;先定位是 DNS、入口、出口、目标还是白名单不兼容,再决定临时措施。
常见问题
SOCKS5 是否天然支持 IPv6?
RFC 1928 定义了 IPv6 目标地址类型,但具体服务端、客户端、入口和出口是否支持仍需实际确认。
有 IPv6 地址就一定能访问 IPv6 网站吗?
不一定,还需要可用路由、DNS、代理和目标服务端到端支持。
为什么白名单只加 IPv4 后仍偶发失败?
双栈客户端可能走 IPv6,目标看到的源地址不在 IPv4 白名单内,需要分别验证两种地址族。
继续阅读
主要参考资料
- RFC 4291:IPv6 Addressing Architecture
- RFC 8305:Happy Eyeballs Version 2
- IANA:IPv4 特殊用途地址
- IANA:IPv6 特殊用途地址
资料最后复核:2026-09-05。外部文档可能更新,操作前请核对来源页面当前版本。