ChatGPT、Claude 或 Gemini 的名字可以同时有 A 和 AAAA。隧道若只接住 IPv4,AAAA 那一次连接不会因为图标显示已连接就走进隧道。2026-11-06 向 1.1.1.1 查询时,这三个名字的 A 和 AAAA 都非空;同一环境里 curl 的 -6 却连不上。竞速会先试哪一族,见 Happy Eyeballs。本文不把这台机器的失败写成某一种运营商的行为。
OpenAI、Anthropic 和 Google 都没有把中国大陆写成这些产品的无条件服务地。让客户端少拿一条 AAAA,或在隧道里拒绝这些域名的 IPv6,都不改变名单。绕过地区检查可能违反条款,账号可能被限制或停用。本文不写伪造证件、购买或借用账号、手机号和支付卡。起草环境不是大陆宽带。
当天:身份查询通过,两族地址都有
一个可单独引用的区分:AAAA 非空只表示解析有 IPv6 答案;-6 的退出码 7 表示这一次 IPv6 的 TCP 没有连上。两件可以同时为真。
DiG 9.18.39。命令是 dig +time=3 +tries=1 @1.1.1.1 CH TXT id.server +short,结果为 "iad07"。记号的读法见 53 端口被改道时,AI 域名先答错:按 2026-11-05 核对的排障页,这种短记号表示到达了 Cloudflare。2026-11-06 没有重开那一页。随后同一解析器上的 A 与 AAAA 都非空。各留一条,其余会变,不要写进规则:
| 名字 | 当天的一条 A | 当天的一条 AAAA |
|---|---|---|
chatgpt.com | 104.18.32.47 | 2606:4700:4408::ac40:9bd1 |
claude.ai | 160.79.104.10 | 2607:6bc0::10 |
gemini.google.com | 142.251.157.2 | 2001:4860:4828:200:: |
地址会更换。表只证明当天这份答案里两族都有,不证明你的网络也返回同样的字面量。
curl 8.5.0 的 --help all 把 -4 写成解析到 IPv4 地址,把 -6 写成解析到 IPv6 地址。当天没有安装 man 页,所以不额外声称「不会再试另一族」。实际命令和结果是:
| 命令 | http | connect | appconnect | exit |
|---|---|---|---|---|
-4 https://chatgpt.com/ | 200 | 0.020241 | 0.036806 | 0 |
-6 https://chatgpt.com/ | 000 | 0 | 0 | 7 |
-4 https://claude.ai/ | 403 | 0.010036 | 0.027815 | 0 |
-6 https://claude.ai/ | 000 | 0 | 0 | 7 |
-4 https://gemini.google.com/ | 200 | 0.013313 | 0.031093 | 0 |
-6 https://gemini.google.com/ | 000 | 0 | 0 | 7 |
三次 -6 的错误都是约 18 到 20 毫秒内 “Couldn’t connect to server”,connect 为 0。没有保存响应头,因此不把 -4 的 403 记成质询或地区拒绝。也没有跑一条不带 -4/-6 的对照,所以不写 curl 默认先用哪一族。-6 失败只说明这台机器当时走不通这些 IPv6 的 443。
自己的机器上用同一行 -w。http 为 000 且 connect 为 0 时,还没有网站的 HTTP。怎样读这几个变量,见 AI 站点的 TLS 停在哪一步。IPv6 有没有从物理网卡出去,见 IPv6 泄漏检查。
curl -4 -sS -o /dev/null --max-time 12 \
-w 'http=%{http_code} connect=%{time_connect} appconnect=%{time_appconnect} exit=%{exitcode} err=%{errormsg}\n' \
https://chatgpt.com/
curl -6 -sS -o /dev/null --max-time 12 \
-w 'http=%{http_code} connect=%{time_connect} appconnect=%{time_appconnect} exit=%{exitcode} err=%{errormsg}\n' \
https://chatgpt.com/
1.14.4 里不要把旧 strategy 和 ip_version 写在一起
GitHub Releases API 在当天仍把最新的非预发布标签标为 v1.14.4,published_at 为 2026-10-24T01:04:25Z。下面的 check 用的是该标签的 linux-amd64 二进制,sing-box version 为 1.14.4,修订 c005f35300ce76427dc285481ec5695f5b179cd2。没有执行 run,也没有用它回答这三个名字。
标签 docs/configuration/dns/index.md 仍有顶层 strategy,取值包括 ipv4_only,说明是解析域名的默认策略,这段没有写弃用。docs/configuration/dns/rule_action.md 里规则动作上的 strategy 则写明:1.12.0 加入,1.14.0 弃用,1.16.0 移除。
当天四次 sing-box check:
| 配置 | 退出码 |
|---|---|
只有顶层 strategy: ipv4_only | 0 |
只有规则动作 strategy: ipv4_only | 0 |
规则含 ip_version: 6,同时另有规则动作 strategy | 1 |
规则含 ip_version: 6,同时有顶层 strategy | 0 |
失败的那次原文是:Legacy strategy DNS rule action option is deprecated in sing-box 1.14.0 and will be removed in sing-box 1.16.0,并带了一个 migration 锚点。标签里的迁移说明写的是:DNS 规则一旦设置 ip_version 或 query_type,就不能和旧的规则动作 strategy 出现在同一套 DNS 里,启动时拒绝。顶层 strategy 没有出现在这句拒绝里,check 也接受了它。不要把「顶层还能用」写成「规则上的 strategy 也能和 ip_version 并存」。
顶层 ipv4_only 是所有名字的默认策略,不是这三个域名的开关。本文不把它当作默认改法,也没有做运行时查询,所以不写它会不会盖住下面的 predefined。
只处理这些名字的 AAAA 查询
docs/configuration/dns/rule.md 写 ip_version 为 4 时表示 A 查询,为 6 时表示 AAAA 查询。默认匹配是域名那一组内部取或,再与其他字段同时成立。因此下面要 domain 和 ip_version 一起成立。predefined 的 rcode 默认是 NOERROR,answer 是一组文本记录。空数组通过了 check。没有抓包,不写响应里实际有几条记录。
{
"domain": ["chatgpt.com", "claude.ai", "gemini.google.com"],
"ip_version": 6,
"action": "predefined",
"rcode": "NOERROR",
"answer": []
}
这条只在查询进入 sing-box 的 DNS 时出现。Chrome 若正在用自己的安全 DNS,查询可能根本不到这里,见同日草稿 安全 DNS 不回退时,AI 域名先失败。PAC 若返回 DIRECT,浏览器也不会把这一下交给隧道,见同日草稿 PAC 把 AI 主机名判成直连。两篇链接都要等发布后才有效。
连接已经是 IPv6 时,规则还要看得到域名
路由规则同样把 ip_version 放在域名那一组之外。docs/configuration/route/rule_action.md 写 reject 的 default:TCP 回 RST,UDP 回 ICMP 端口不可达。当天 check 接受了把下面这段和上面的 DNS 规则放进同一份最小配置。没有观察浏览器会不会改试 A 记录。
{
"domain": ["chatgpt.com", "claude.ai", "gemini.google.com"],
"ip_version": 6,
"action": "reject",
"method": "default"
}
域名要已经能被规则看见。只有 IP、还没嗅探时,这条对不上,见 没嗅探时,AI 域名规则对不上。只写 ip_version: 6、不写 domain,会命中所有 IPv6 连接。那会连不相关的地址一起拒绝,本文不把它当默认。
拒绝这些 IPv6 连接,不表示 IPv4 一定能用。当天这台机器的 -4 有 HTTP,只属于这台机器。你的 -4 若也是 http=000,先查隧道,不要先改账号。
名单仍然看到达之后的那一次访问
ChatGPT Supported Countries 在 2026-11-06 的页眉是 “Updated: 15 days ago”。页面写明,在列出的国家、地区和领土之外访问或提供访问,账号可能被封锁或暂停。当天列表里能看到 Taiwan,没有看到 China、Hong Kong、Macau。名单很长,发布前应再搜索一次。Anthropic 与 Gemini 当天没有重开,见 Claude 与 Gemini 的地区报错和注册。
-4 已经返回 HTTP 之后如果正文是地区英文,就停在名单上。继续删 AAAA 不会改写这句。
公开文件里的法律范围
《关于清理规范互联网网络接入服务市场的通知》(工信部信管函〔2017〕32号)写明,未经电信主管部门批准,不得自行建立或租用专线(含 VPN)等其他信道开展跨境经营活动。2017 年 1 月 24 日的答记者问说明,对象是无国际通信业务经营资质而开展跨境电信业务经营的企业或个人;企业办公自用、向依法设置国际通信出入口局的经营者租用,不在该条针对的范围内。2026-11-06 没有重新打开部委网页,这段沿用该通知和答记者问的公开表述。本文不判断某种个人使用是否违法,也不写规避执法的做法。
一次失败留下的记录
id.server的原文,以及 A、AAAA 是否非空。不要只写「有 IPv6」。- curl 的
-4和-6各一行:http、connect、exit。 - 查询是否进入 sing-box。没有进入时,不要用上面的 DNS 规则解释这次失败。
- 若改了配置:
sing-box check的退出码。规则动作上的strategy和ip_version不要写在同一套 DNS 里。
2026-11-06 的地址和秒数只属于起草环境的那几次命令。