Clash Verge 系统代理导致 Tailscale 域名无法访问的处理

Windows 同时运行 Clash Verge 和 Tailscale 时,Tailscale 设备本身在线,直接访问链路也正常,但浏览器打开 Tailscale Serve 域名时返回:

ERR_CONNECTION_ABORTED

当前 Clash Verge 使用系统代理模式,TUN 未开启,Windows 系统代理指向:

127.0.0.1:7890

最终有效的处理并不是继续增加 Mihomo 的 DIRECT 规则,而是在 Clash Verge 的“系统代理 → 设置 → 代理绕过设置”中加入:

*.ts.net
*.tailscale.com
*.tailscale.io

保存后,浏览器即可正常访问 Tailscale Serve 地址。

这次问题需要区分“系统代理绕过”和 Mihomo 的 DIRECT。前者表示请求根本不进入 127.0.0.1:7890,后者则表示请求已经进入 Mihomo,只是在规则匹配后由 Mihomo选择直接连接目标。两者虽然最终都叫“直连”,实际作用的位置并不相同。

排查时首先确认了 Tailscale 本身没有断。目标域名能够正常解析到对应的 Tailscale 地址:

Resolve-DnsName <Tailscale域名> -Type A

结果中的地址与 tailscale status 中目标设备的地址一致,Windows 路由表中也存在对应的 Tailscale 路由:

DestinationPrefix       InterfaceAlias
-----------------       --------------
<Tailscale_IP>/32       Tailscale

随后直接绕过系统代理测试:

curl.exe -vk --noproxy "*" https://<Tailscale域名>/

能够正常连接:

Trying <Tailscale_IP>:443...
Connected to <Tailscale域名> (<Tailscale_IP>) port 443
...
HTTP/1.1 200 OK

并且返回目标服务的正常页面内容。这说明 Windows → Tailscale → 目标设备 → HTTPS 服务这一条链路没有问题,故障只出现在请求经过 Clash 系统代理之后。

此前已经在 Sub-Store 生成的 Mihomo 配置中加入过 Tailscale 相关规则:

DOMAIN-SUFFIX,ts.net,DIRECT
IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
IP-CIDR6,fd7a:115c:a1e0::/48,DIRECT,no-resolve

同时还将 ts.net 排除在 Fake-IP 之外:

+.ts.net

但浏览器仍然无法访问。这并不说明这些规则无效,而是它们解决的是 Mihomo 内部的分流问题。使用系统代理时,浏览器的请求路径仍然是:

浏览器
  ↓
Windows 系统代理
  ↓
127.0.0.1:7890
  ↓
Mihomo
  ↓
DIRECT
  ↓
目标地址

DIRECT 只改变 Mihomo 收到请求后的出口,不等于让浏览器绕过 Clash。

加入系统代理绕过之后,Tailscale 域名的访问路径变成:

浏览器
  ↓
不进入 127.0.0.1:7890
  ↓
Windows 网络栈
  ↓
Tailscale
  ↓
目标设备

这也是本次修改前后的实际差异。由于绕过代理后测试始终正常,而加入 Clash Verge 的域名绕过后浏览器也恢复访问,可以确认故障与 Tailscale 请求进入本地 Clash 系统代理这一链路有关。现有测试没有继续细分请求进入 Mihomo 后具体在哪一步被中止,因此没有必要再把原因强行归到 DNS、路由或连接建立中的某一个环节。

对于当前这种“Clash Verge 系统代理开启、TUN 关闭”的使用方式,可以把配置分成两层。

Clash Verge 的系统代理绕过负责本机不应该经过代理的网络:

localhost
127.*
192.168.*
10.*
172.16.*
...
172.31.*
<local>

*.ts.net
*.tailscale.com
*.tailscale.io

其中 Tailscale 域名直接交给 Windows 和 Tailscale 处理,不再进入 Mihomo。

Sub-Store 中的 Tailscale DIRECT 规则则可以继续保留:

DOMAIN-SUFFIX,ts.net,DIRECT
IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
IP-CIDR6,fd7a:115c:a1e0::/48,DIRECT,no-resolve

它们仍然适合处理已经进入 Mihomo 的 Tailscale 流量,相当于第二层兜底。两组规则并不冲突:

系统代理绕过
    ↓
尽量不让 Tailscale 流量进入 Clash

Mihomo DIRECT
    ↓
已经进入 Clash 的相关流量仍然直连

Windows 路由
    ↓
交给 Tailscale 虚拟网卡

这也解释了为什么以前单独使用 DOMAIN-SUFFIX,ts.net,DIRECT100.64.0.0/10,DIRECT 一类规则可以解决部分 Tailscale 与 VPN 的冲突,而这次没有解决浏览器访问问题。如果冲突发生在 Mihomo 的出口选择或路由层,DIRECT 本身就可能有效;这次实际验证表明,浏览器绕过 127.0.0.1:7890 后才能稳定恢复,因此需要在更前面的系统代理层处理。

最终保留的配置关系是:

Clash Verge:
系统代理:开启
TUN:关闭
Tailscale 域名:加入代理绕过

Sub-Store / Mihomo:
Tailscale 域名:DIRECT
100.64.0.0/10:DIRECT
Tailscale IPv6 地址段:DIRECT
ts.net:排除 Fake-IP

这样本机 Tailscale 通信优先直接使用 Windows 的 Tailscale 网络路径,而 Mihomo 内部仍保留对应的直连规则,避免把两种不同层级的“直连”混为一谈。