IETF 推进 Happy Eyeballs v3:双栈代理客户端应如何测试路径选择

IETF HAPPY 工作组在 2026 年 7 月发布 Happy Eyeballs v3 工作组草案第 04 版。它延续一个核心目标:当 IPv6 与 IPv4 同时可用时,应用既要快速建立连接,也要避免因单一路径故障让用户等待很久。
这是仍在演进的 Internet-Draft,不是最终标准。对代理团队而言,其方向已经值得关注:直接连接只需在目标地址之间选择;加入 HTTP CONNECT 或 SOCKS 网关后,系统实际拥有“客户端到代理网关”和“代理网关到目标”两段独立路径。
先分清两段地址族
客户端可能通过 IPv6 连接代理网关,而网关通过 IPv4 访问目标;也可能通过 IPv4 网关,由网关远程解析并选择 IPv6 目标。只记录“本次是 IPv6”会隐藏真正的决策位置。
HTTP CONNECT 客户端通常选择网关地址族,目标连接由网关建立。SOCKS 请求既可携带已解析地址,也可携带主机名;主机名模式会把目标 DNS 与地址族选择交给网关。因此测试记录必须明确 DNS 在哪里发生。
最先成功的套接字不等于最佳路线
Happy Eyeballs 优化可感知的连接延迟,不负责证明代理质量。最快握手之后仍可能出现:
- IPv6 路径在响应中途重置;
- IPv4 建连稳定,但目标首字节很慢;
- 客户端与网关使用不同地区的 DNS;
- 网关接受 IPv6,却在上游回退到 IPv4;
- 连接池复用热连接,使冷启动结果不可比;
- 目标返回与传输无关的 403、429 或策略拒绝。
只有完成授权请求并获得可用结果,才算成功。握手胜出后隧道失败、正文不完整或路线不符,都不应计入代理成功率。
四层观测模型
DNS
记录网关与目标分别由谁解析、A/AAAA 结果集、顺序、解析器地区、缓存状态和时间。敏感内部主机名可改用不含秘密的路线标签。
网关连接
记录客户端地址族、网关地址、尝试开始时间、握手完成、TLS、代理认证、另一条尝试是否仍在进行。这一层通常由本地 Happy Eyeballs 实现控制。
隧道或 SOCKS 结果
记录 CONNECT/SOCKS 状态、远程 DNS 模式、可观测的目标地址族、隧道耗时和结构化错误。至少分开 proxy_auth_failed、gateway_unreachable、target_connect_failed 与 tunnel_timeout。
应用结果
记录首字节、完整响应、字节量、有效结果,以及任务是否遵守授权、robots、条款与速率限制。目标 403/429 不应自动进入代理传输评分。
六组受控测试
在自有或明确获准的网关与目标上,执行有限样本:
- 仅 IPv6 网关,网关远程解析目标;
- 仅 IPv4 网关,作为控制组;
- 双栈网关竞速,观察启动顺序与取消;
- 客户端解析目标,分离本地选择与网关行为;
- 对优先地址族注入延迟或丢包,验证有限回退;
- 两族都健康,检查偏好、稳定性和多余连接。
保持凭据、网关地区、目标、方法、载荷、超时和业务目的不变,一次只改变一个变量。需要冷启动结论时,使用新进程或明确清空连接池。
应记录的指标
- 网关 DNS 耗时与地址族分布;
- 第一、第二次连接尝试的开始时间;
- 胜出网关地址族与取消延迟;
- 网关握手、代理认证和隧道成功率;
- 可观测的目标地址族;
- 首字节 p50/p95;
- 完整响应和有效结果率;
- 会话中途重置率;
- 回退率与回退成功率;
- 每个有效请求产生的额外连接数;
- 每个授权有效结果的流量与成本。
正确目标不是“IPv6 永远获胜”,而是在 IPv6 表现良好时保留 IPv6 偏好,并在异常时有限、快速、可解释地回退。
采购双栈代理前要问什么
- 网关域名是否双栈,是否同时提供 IPv4-only 与 IPv6-only 控制端点?
- HTTP CONNECT 能否在脱敏日志中显示目标地址族?
- SOCKS 主机名模式在哪里解析 DNS?
- 能否固定网关地址族而不改变目标访问策略?
- 两种地址族的认证、白名单、并发和计费是否一致?
- 网关失败时是否保证不会直连回退?
- 是否能导出不含凭据与客户数据的路线证据?
- 如何区分会话重置、目标连接失败和网关失败?
只报告公开出口 IP 的服务商,无法解释完整的路径选择。
发布检查清单
- 明确 v3 是活跃草案而非最终标准;
- 记录网关与目标各自由谁解析;
- 分开记录两段地址族;
- 仅使用自有或明确授权测试环境;
- 每次比较只改变一个变量;
- 同时测试冷、热连接池;
- 对 IPv4/IPv6 进行有限故障注入;
- 确认落败套接字、计时器和页面被清理;
- 连接竞速不能复制有副作用的业务请求;
- 目标策略拒绝不进入代理传输评分;
- 以稳定性和有效结果衡量,而非只看握手速度。
相关流程可继续阅读 98IP 的 IPv6 作用域重试测试、代理池 ASN 集中度审计和住宅代理会话粘性测试。
FAQ
Happy Eyeballs 会选择代理出口 IP 吗?
不一定。本地客户端通常只决定如何连接代理网关;网关可能独立解析和连接目标,因此出口地址族必须单独观测。
IPv6 网关连接成功能证明端到端 IPv6 吗?
不能。网关仍可能通过 IPv4 访问目标。端到端结论需要两段路线证据。
竞速失败后应该快速轮换代理吗?
不应该。先区分 DNS、网关传输、代理认证、隧道建立和目标策略。只有获得传输证据且轮换符合授权时才调整路线。
合规说明
只对有权测试的网关、目标、账号和数据执行连接实验。遵守网站条款、robots、隐私义务与速率限制。不得利用地址族竞速或代理轮换绕过发布者决定、规避限速或复制有副作用的请求。
来源说明:IETF HAPPY 工作组,《Happy Eyeballs Version 3: Better Connectivity Using Concurrency》工作组 Internet-Draft 第 04 版,2026 年 7 月发布。外部资料地址仅保存在 98IP 内部运营记录中。