这可能是大部分人都忽视掉的一个问题。如果你在用代理访问 Claude,这篇文章值得花三分钟看完。
先说本质。你配的代理规则,大多数情况下只匹配 IPv4,或者 domain 匹配时只命中 A 记录。但 Anthropic 的服务同时有 A 记录(IPv4)和 AAAA 记录(IPv6)。
这意味着什么?
结果就是:你以为流量走了代理,实际上 IPv6 那部分悄悄从本地网络直连出去了。代理日志里看不到,你自己也感知不到。
市面上能买到的家宽 IP,绝大多数以 IPv4 作为主力出口。运营商会定期给你换一个新的 IPv4 动态地址。但 IPv6 呢?大部分运营商是不会自动轮换的。
听起来"稳定"是好事对吧?但反过来想:你的 IPv6 地址永远不变,意味着这个地址上所有"邻居"的行为都会影响到你。如果同一个 /48 段里有人做过不当操作,这个段的信誉就被拉低了,而你还在用它。
这是最关键的一条。不关闭 IPv6 的话,Claude Code 的请求有一定概率直连(尤其在日本这种 IPv6 普及率高的环境下)。关闭之后,所有流量 100% 强制走你设定的代理规则,完全可控。
如果你遇到过这种情况——第一次请求特别慢,刷新一下就快了——本质上很可能是这样的:
关闭 IPv6 后路径唯一,不存在双栈竞争,不再抖动。改完之后可以用 IP 查询工具 验证一下,看看你的出口是不是只剩 IPv4 了。
IPv6 环境下很容易出现一种情况:AAAA 记录走了本地运营商 DNS 解析,A 记录走了代理的 DNS。两边解析结果不一样,导致 IP 不一致、地区漂移(比如一会儿日本一会儿台湾)。关闭 IPv6 后只剩 IPv4,DNS 行为完全统一。
想检测你的 DNS 是否存在泄露?试试 DNS 泄露检测。
实际使用中,很多代理配置里的 domainStrategy 设的是 IPIfNonMatch。在 IPv6 可用的情况下,系统很容易直接走 AAAA 记录命中直连规则,完全绕过代理。关闭 IPv6 后,所有域名只解析 A 记录,规则命中率大幅提升。
工程上这点同样重要。不开 IPv6 的话,所有流量都是 IPv4,路径单一。排查问题的时候不用考虑 Happy Eyeballs 协议、双栈竞争、fallback 行为这些变量。出了问题,抓包看一条线就够了。
客观来说,关闭 IPv6 理论上有两个缺点:
但对于你的场景——代理用户、分流复杂、追求稳定性——关闭 IPv6 的收益远大于代价。实测没有任何实际风险。
domainStrategy 设为 ForceIPv4 或 UseIPv4。
如果你不想折腾配置,也可以直接在系统层面关闭 IPv6:
Linux:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
macOS:
网络偏好设置 → 对应网络接口 → TCP/IP → 配置 IPv6 → 关闭
Windows:
网络适配器属性 → 取消勾选"Internet 协议版本 6 (TCP/IPv6)"
路由器层面:
在路由器管理界面关闭 IPv6 DHCP 分配,一劳永逸。
如果你用的是代理客户端,最简单的方式是在配置文件里直接加一行:
# 严格关闭 IPv6
ipv6 = false
加上这一行之后,客户端会拒绝所有 IPv6 连接请求,强制所有流量走 IPv4。不需要改系统设置,不需要动路由器,重启客户端就生效。这是最低成本、最不容易出错的做法。
IPv6 在技术上是未来趋势,但在"分流 + 代理"这个特定场景下,它就是不确定性的来源。关闭 IPv6 等于直接消灭一整类潜在问题:分流失效、DNS 泄露、风控异常、连接抖动。
一行配置,稳定性直接提升一个等级。