同一份节点在电脑上能打开页面,手机上打不开或出口不同,先不要换成另一种协议。2026-10-27 对照的文档里,系统 HTTP 代理、TUN 和 Android 私有 DNS 各管一层。先让两台设备露出各自的出口地区,再改配置。
OpenAI、Anthropic 和 Google 都没有把中国大陆写成这些消费级或开发者产品的无条件服务地。从名单外访问可能违反条款,账号可能被限制或停用。本文不写伪造证件、购买或借用账号、借用他人手机号和支付卡。法律背景只转述公开文件,见文末,不是法律意见。没有在大陆宽带或真机上复测,命令输出以你自己的网络为准。
先让两台设备露出出口
一个可单独引用的判断句:节点相同,只说明配置里写了同一个服务器;电脑浏览器和手机浏览器仍可能从不同的地址出去。
在各自已经选好的出口上访问 Cloudflare 的 trace。2026-10-26 的 现象排查 用过同一地址,本文没有在 2026-10-27 重放:
curl -4 -sS --max-time 20 https://www.cloudflare.com/cdn-cgi/trace
只比较 loc,不要把完整 ip 贴到公开场合。两边 loc 不同,就还没在查「同一出口上的网站策略」。手机没有 shell 时,用手机浏览器打开同一 URL,看页面里的 loc。这条结果只说明 Cloudflare 看见的来源,不能说明 OpenAI 或 Google 是否接受该地址。地区名单见 Claude 与 Gemini 的地区报错和注册。
三种接管方式各管一层
| 你打开的开关 | 谁会跟着走 | 2026-10-27 文档里的边界 |
|---|---|---|
| 系统 HTTP 代理 | 主动读取代理设置的应用 | sing-box 的 platform.http_proxy 是另一组字段,不是 TUN 本身 |
TUN,且 auto_route 为真 | 被装进这条路由的 IP 包 | 没有路由变化时,TUN 只是一张网卡。原理见 TUN 全局代理 |
Android 的 include_package / exclude_package | 名单里的应用包名 | 文档写明仅 Android,且要求 auto_route |
| iPhone 设置里的 VPN | 按目标地址进入的整机隧道 | 按应用触发的是另一份设备管理载荷,见下一节 |
sing-box 稳定版 v1.14.4 于 2026-10-24T01:04:25Z 发布,不是预发布。同日的 v1.15.0-alpha.13 是预发布。下面的字段按文档站当天页面书写;页面顶部标成 1.15.0 才有的变化,不要写进 1.14.4 的配置。图形客户端的安装包文件名,本文没有逐个打开下载目录核对。
platform.http_proxy.match_domain 在文档里写的是只支持 Apple 平台的图形客户端。同一份 JSON 拷到 Android 后,这个字段不会按 Apple 那段说明生效。电脑能靠它把少数域名送进代理、手机却整站直连或整站进隧道,可以先查是不是这份字段。
Android 私有 DNS 不在 53 端口那段说明里
Google Public DNS 的使用说明 在 2026-10-27 仍把 Android 9 及以上的私有 DNS 写成 DNS-over-TLS,路径是:设置、网络和互联网、高级、私有 DNS,然后选择「Private DNS provider hostname」。厂商菜单的中文名称可能不同,本文没有在三星或华为真机上点过。
同一页有一句只针对 Android 9 的注意:使用 VPN 或第三方 DNS 应用时,这些私有 DNS 设置不起作用,那些应用会覆盖私有 DNS。页面接着写「This is fixed in Android 10」,但没有展开 Android 10 之后 VPN 与私有 DNS 谁优先。不要把这句理解成「Android 10 以后私有 DNS 一定失效」或「一定仍然生效」。
同一页还写:Android P 的默认模式是 Automatic,会先对网络指定的 DNS 尝试 853 端口上的 TLS,失败后再回退到 53 端口的 UDP。主机名模式则是你指定服务器。
LinkProperties.getPrivateDnsServerName() 写明:返回值不是空,就是 strict mode,应用应把查询加密发往该主机,并且只在证书有效时发送。返回值为空且私有 DNS 处于活动状态时,是 opportunistic mode。接口文本没有写「连不上就改走 UDP/53」。
sing-box TUN 文档对 dns_mode: hijack 的补充是 53 端口:Linux 上在 auto_redirect 打开时把 53 端口重定向到 dns_address;Windows 上在 strict_route 打开时阻止从其它网卡出去的 53 端口。auto_route 打开且未设置 dns_mode 时,默认就是 hijack。这段没有把 Android 的 853 写进去。因此:
- 记下手机现在是关闭、Automatic,还是填了主机名。
- 先改成关闭,重新连接客户端,再比一次
loc,并打开刚才失败的那个域名。 - 关闭之后恢复,而主机名模式下一打开就解析失败:失败点在那台 DNS-over-TLS 服务器,不要先换代理协议。
- 关闭之后仍然和电脑的
loc不同:继续看分应用和是不是只开了系统 HTTP 代理。泄漏的读法见 DNS 泄漏检查。
Google 页面里的示例主机名是 dns.google。那是在说明如何使用 Google Public DNS,不是本文建议的出口,也没有在大陆网络上验证它能否连上。
分应用字段不能从 Android 抄到 iPhone
文档写明 include_package 和 exclude_package 只在 Android 上、并且要求 auto_route。下面不是完整配置,缺了地址和出站就不能运行:
{
"type": "tun",
"tag": "tun-in",
"auto_route": true,
"include_package": ["com.android.chrome"]
}
只写入 com.android.chrome 时,文档的含义是限制路由到这个包。其它应用不在这份名单里。反过来,若 Chrome 出现在 exclude_package,手机浏览器会绕开 TUN,电脑上的浏览器却仍走代理。先在客户端里看排除名单,再改协议。
route_address_set 从 1.11.0 起可以往路由里加大量地址。同一页写明:Android 和 Apple 的图形客户端处理不了大量路由,因此这一项在这两类图形客户端上不可用;命令行以及 Linux、Windows 图形客户端不受这句限制。电脑用图形客户端加载了一份带大地址集的配置、手机图形客户端把同一项忽略,两边的路由本来就会不一样。
文档还有一句:在 Android 上,默认是 VPN 优先于 tun;要让 tun 经过那条 VPN,才打开 route.override_android_vpn。手机上如果已经有另一个 VPN 开着,sing-box 的 tun 按这句默认收不到流量。本文不把这个开关写成需要叠两条隧道的步骤。
Apple 这边,AppLayerVPN 载荷 的标识是 com.apple.vpn.managed.applayer,支持的注册方式是用户注册、设备注册和自动设备注册。载荷可以写关联域名、排除域名,以及由关联应用发起网络活动时自动连接。页面发布日期是 2024-03-07,晚于这一天的系统行为要以你手头的部署指南为准。普通「设置」里手动添加的 VPN,不是这份载荷。不要把 Android 的包名列表写进 iPhone 的 sing-box 配置里指望它生效。
设置助手文档 写明,可以从 Wi-Fi 网络的信息按钮配置 HTTP 代理。那只影响会读取该代理的访问。它和数据包隧道不是同一层。日常菜单在不同 iOS 版本上的名称,本文没有逐版点选。
可以照着做的一轮对照
- 电脑和手机各看一次 trace 的
loc。不同就先停止比较网站报错。 - 确认手机客户端是 TUN / VPN,还是只设置了系统 HTTP 代理。只开了后者时,不读代理的应用仍走原来的网络。分流的边界见 VPN 分流。
- Android 把私有 DNS 改成关闭,复测一次,再决定要不要改回去。
- 看 Android 的
exclude_package里有没有浏览器。iPhone 不要用这个字段解释。 - 同一份配置在电脑图形客户端和手机图形客户端上表现不同时,检查有没有
route_address_set和只在 Apple 上生效的match_domain。 - 出口已经一致,页面仍写国家或地区不支持:停止重连,改查服务商名单。
核心如何匹配规则,见 sing-box 是什么。
公开文件里的法律范围
《关于清理规范互联网网络接入服务市场的通知》(工信部信管函〔2017〕32号)写明,未经电信主管部门批准,不得自行建立或租用专线(含 VPN)等其他信道开展跨境经营活动。2017 年 1 月 24 日的答记者问说明,对象是无国际通信业务经营资质而开展跨境电信业务经营的企业或个人;企业办公自用、向依法设置国际通信出入口局的经营者租用,不在该条针对的范围内。本文不判断某种个人使用是否违法,也不写规避执法的做法。2026-10-27 没有重新打开部委网页,这段沿用该通知和答记者问的公开表述。
对照之后留下的记录
留下五样东西:电脑和手机的 loc、手机是 TUN 还是系统 HTTP 代理、私有 DNS 是关闭还是主机名、有没有排除浏览器包名、sing-box 核心版本。下一次升级客户端时用同一张表重测。1.14.4 的字段不能当成以后版本的默认值。