TUN 把流量送进核心时,目标经常只是一个 IP。写了 ChatGPT、Claude 或 Gemini 域名的规则如果看不见名字,就不会命中。连接随后落到默认出站:默认若是直连,网站看到的是本地出口,页面上的「国家或地区不支持」会像是账号问题。嗅探解决的是「规则能不能看见域名」,不是地区资格。
OpenAI、Anthropic 没有把中国大陆列为这些产品的服务地。Gemini 网页名单写的是「中国大陆(仅 Workspace)」。绕过地区检查可能违反条款,并导致账号被限制或停用。本文不写伪造证件、购买或借用账号、手机号和支付卡。
三种「没走那条出站」不是同一件
一个可单独引用的区分:域名规则对不上,是因为这条连接里没有域名;例外名单和本地解析器是另外两条路径。
| 现象 | 更像哪一篇 | 下一步 |
|---|---|---|
| 系统代理的例外名单里有这些站点 | 请求可能根本没进代理 | 见例外名单一文 |
| 解析地址和另一台解析器不同 | 问名字的路径不同 | 见同日 DNS 草稿 |
| 日志里目标是 IP,域名规则没有命中 | 还没从连接里读出名字 | 按本文看嗅探 |
| 规则已命中选定出站,页面仍是地区英文 | 网站按出口判断 | 停止改嗅探 |
例外名单的分隔符见 例外名单把 AI 网站留在直连。产品域名片段见 ChatGPT 网页停住 和 Claude 与 Gemini 的地区报错和注册。本文不另抄一份域名表。
默认出站已经是你打算使用的那一个时,域名规则没命中,出口也不会因此换成直连。嗅探要解决的是:你把这些域名单独指向一条出站,而默认出站是另一条,包括默认直连。
嗅探能读到的名字
2026-10-31 的 协议嗅探 表里,和网页有关的几行是:
| 网络 | 协议 | 域名从哪来 |
|---|---|---|
| TCP | tls | Server Name |
| TCP | http | Host |
| UDP | quic | Server Name |
| TCP/UDP | dns | 表内没有域名列 |
页首仍写「若在入站启用」。 迁移页 已把入站上的 sniff: true 换成路由规则里的 action: sniff。两处都在当天的文档站上。本文按迁移示例写规则,不把入站旧字段再加回去。
规则动作 里,sniff 只有 sniffer 和 timeout。sniffer 留空则启用全部嗅探器。timeout 默认 300ms。同一页没有 sniff_override_destination。TLS 的 Server Name 若被加密客户端问候隐藏,当天的表没有写还能不能读到。本文没有验证这种情况。读不到名字时,域名规则仍然对不上。
dns 这一行没有域名。查询该进 DNS 模块,靠的是后面的 hijack-dns,不是从 DNS 包里嗅探出一个可以拿来匹配的网站名。解析器选哪一台,见同日草稿「AI 域名仍由本地解析器回答」。那一篇和本文都还是草稿,链接要等发布后才有效。
按迁移示例把嗅探放在域名规则前面
1.14.4 文档没有单独一句「嗅探不终止后续规则」,也没有一句「数组中第一条命中即停止」。迁移示例把 hijack-dns 写在 sniff 后面,这个例子只有在嗅探之后还会继续匹配时才成立。本文照这个次序写,没有在 1.14.4 二进制里单步确认。发布前用日志看:先有没有嗅探结果,然后域名规则的出站是不是你写的那个。
GitHub 上非预发布的最新标签仍是 v1.14.4(2026-10-24)。片段不是完整配置。ai-out 必须是已有出站。域名清单以那两篇产品文为准,这里只留一个顶点做例子。
{
"route": {
"rules": [
{
"action": "sniff",
"timeout": "300ms"
},
{
"protocol": "dns",
"action": "hijack-dns"
},
{
"domain": ["chatgpt.com"],
"domain_suffix": [".chatgpt.com"],
"action": "route",
"outbound": "ai-out"
}
]
}
}
domain_suffix 的文档示例带前导点,例如 .cn,页面只写「匹配域名后缀」。顶点是否还要再写进 domain,那两篇已经按「再写一次」处理。action 为必填;route 的 outbound 为必填。旧的规则级 outbound 在 1.11.0 已弃用。
日志级别怎么开、看完如何改回 info,见 现象排查 里 2026-10-26 核对过的 log 字段。本文 2026-10-31 没有重开那一页。架构上嗅探处在哪一层,见 sing-box 是什么。
命中之后仍可能是地区报错
规则命中 ai-out,只说明这条连接被送到那个标签。网站是否返回地区错误,取决于该出口落在哪一份名单,以及账号本身。2026-10-31 重开的页面:
- ChatGPT Supported Countries 页眉为「Updated: 9 days ago」。英文名单中看到 Taiwan,没有看到 China、Hong Kong、Macau。页首写明名单外访问或提供访问可能导致封锁或暂停。
- Anthropic Supported Regions 生效日写着 2026-11-12。名单中看到 Taiwan,没有看到中国大陆、香港、澳门。
- Gemini 网页可用地区 有 “Mainland China (Workspace only)”、Hong Kong、Macau 和 Taiwan。API 名单当天没有从渲染后的正文再核对。
把流量改到名单内的地址,不能把人的所在地改成支持地区。同一账号短时间从多个国家的地址登录,会让服务商看到环境来回跳。固定一个你有权使用的出口,只是减少这种跳跃。不要共用账号。支付方式不在 OpenAI 支持范围时的说明,见 API、订阅与支付排查 所引的帮助中心。
可以照着做的一轮
- 先确认失败是「日志里目标为 IP」,还是已经出现 HTTP 状态码和地区英文。后者不要从嗅探改起。
- 在复现的那一次把日志调到
debug,看这条连接有没有嗅探协议,以及出站标签。 - 没有嗅探结果:核对规则数组里
sniff是否在域名规则之前,timeout是否仍是默认的300ms。 - 有 TLS 嗅探结果但出站不是
ai-out:域名没有落到规则上。对照那两篇里的顶点名和后缀,不要用整份.google.com去包。 - 出站已经是
ai-out仍是地区英文:记下出口的地区线索,改查名单,而不是把超时再调大。 - 看完把日志级别改回日常使用的级别。
公开文件里的法律范围
2026-10-31 打开的《关于清理规范互联网网络接入服务市场的通知》(工信部信管函〔2017〕32号,通知页)写明:未经电信主管部门批准,不得自行建立或租用专线(含虚拟专用网络 VPN)等其他信道开展跨境经营活动。同日打开的 答记者问 写明,规范对象是无国际通信业务经营资质、私自开展跨境电信业务经营的企业或个人;企业因办公自用,向依法设置国际通信出入口局的经营者租用,不在该条针对的范围内。本文不判断某种个人使用是否违法,也不写规避执法的做法。
看完一次连接留下的记录
留下五样东西:核心是不是 1.14.4、日志里嗅探到的协议、目标是域名还是 IP、命中的出站标签、页面是超时还是地区英文。迁移示例的次序不能代替你这份配置的日志。升级之后先跑该版本的 sing-box check,再保留同样的对照。