之前我一直在用 Clash for Windows 科学上网。后来为了使用 Google 的反重力(Antigravity)软件,需要开启 TUN 模式,但我这边出现了一个非常折磨人的问题:只要一打开 TUN,就直接断网

这期间我在网上翻了无数帖子、试了无数“玄学设置”,都没能根治。中间还换过同门的一款 CFW(确实能开 TUN 正常用),但它有一个新毛病:会随机掉网——有时一瞬间,有时持续十几秒,尤其在和 AI 对话时,断一下就可能导致长回答直接中断,反复重试也很浪费时间。

于是我决定换到口碑更好、且仍在维护的 Clash Verge Rev。结果安装后发现:开启 TUN 依然无法联网。这让我意识到:问题不在某一款软件,而在我的网络环境/路由策略上。

直到某次我无意间翻日志,看到了“不太一样”的提示(大意是内核选择的出口接口/路由不对),我才突然反应过来——

image-20251219163432701

我的以太网(Ethernet)连的是内网
如果系统默认把“以太网”当成更优先的出口,Clash 开启 TUN 后把流量按默认路由丢给以太网,那怎么可能访问公网?

所以真正要解决的不是“怎么调 Clash”,而是:
让系统默认出口走 WLAN(Wi-Fi),而不是以太网。

下面记录两种我亲测有效的方案。


症状表现

image-20251219163709107

  • Clash Verge Rev(或其他支持 TUN 的客户端)开启 TUN 后:
    • 浏览器打不开网页 / 全局断网
    • 或日志里出现 IP/路由相关报错(比如出口接口选择异常、路由不可达等)
  • 关闭 TUN 一切恢复正常

根因:默认路由/接口优先级选错了

Windows 在多网卡并存时,会根据 接口跃点数(Interface Metric)、路由表等规则决定默认出口。
如果你的 以太网优先级高于 Wi-Fi,系统就可能优先走以太网默认路由——而你这条以太网只通内网,不通公网,于是“看起来像是 TUN 把网搞没了”。


方案一:禁用以太网(有副作用)

适用场景:你暂时不需要访问内网服务,只想立刻恢复公网。

操作步骤

  1. Win + R 输入 ncpa.cpl 回车(打开“网络连接”)
  2. 找到 以太网(Ethernet) → 右键 → 禁用
  3. 再打开 Clash 的 TUN,通常就能直接联网

缺点

  • 禁用后 无法访问内网资源(例如内网服务器、NAS、实验室网段等)
  • 需要内网时还得手动启用回来

方案二:提升 WLAN 优先级(推荐)

核心思路:把 Wi-Fi 的 Metric 调小(优先级更高),把 以太网的 Metric 调大(优先级更低)。
这样默认出口走 Wi-Fi,但你访问内网网段时,依然可以走以太网(只要路由存在)。

方法 A:图形界面修改(稳定、直观)

建议 IPv4 和 IPv6 都改一下,避免某些环境下“IPv6 先走错”。

  1. Win + R → 输入 ncpa.cpl

    image-20251219163613103

  2. 右键 Wi-Fi → 属性

    image-20251219163831982

    • 双击 Internet 协议版本 4 (TCP/IPv4) → “高级…”

      image-20251219163902234

      image-20251219163919794

    • 取消勾选 自动跃点数(Automatic metric)

    • 在“接口跃点数”填一个较小值,例如:510

      image-20251219164047302

    • IPv6(TCP/IPv6)同样操作一遍(可选但推荐)

  3. 右键 以太网 → 属性

    操作同上

    • 同样进入 IPv4/IPv6 高级设置
    • 取消自动跃点数
    • 设置一个较大的值,例如:50 / 100

修改后一般无需重启,断开重连 Wi-Fi/以太网或重启 Clash 即可。


方法 B:命令行修改(适合记录/脚本化)

以管理员身份打开 PowerShell,然后:

1
2
3
4
5
6
7
8
9
10
# 查看当前接口与跃点数
Get-NetIPInterface | Sort-Object InterfaceMetric | Format-Table ifIndex,InterfaceAlias,AddressFamily,InterfaceMetric

# 把 Wi-Fi 提高优先级(metric 更小)
Set-NetIPInterface -InterfaceAlias "WLAN" -AddressFamily IPv4 -InterfaceMetric 5
Set-NetIPInterface -InterfaceAlias "WLAN" -AddressFamily IPv6 -InterfaceMetric 5

# 把 Ethernet 降低优先级(metric 更大)
Set-NetIPInterface -InterfaceAlias "以太网" -AddressFamily IPv4 -InterfaceMetric 50
Set-NetIPInterface -InterfaceAlias "以太网" -AddressFamily IPv6 -InterfaceMetric 50

image-20251219164726644

这是我修改后的配置

注意:不同机器网卡名称可能不是 WLAN / 以太网,以你 Get-NetIPInterface 里看到的 InterfaceAlias 为准。

进阶:用 Proxifier 给 AI 工具做应用级代理,减少对话断连

即便把 TUN 问题解决了,我还遇到过 AI 工具网络不稳定、对话偶发中断 的情况。很多 AI 客户端/IDE 插件并不总是“乖乖走系统代理”,或者在网络切换时连接更容易抖动。

我的做法是:不用全局折腾,把 AI 相关进程强制走 Clash 的本地 SOCKS5 代理(应用级代理),让它们的网络路径更一致,从而减少断连。

下面以我当前配置为例:

1)在 Proxifier 添加 Clash 的 SOCKS5 代理

打开 Proxifier:

  • ProfileProxy Servers...Add...

    或点击图中位置

    image-20251219165528874

    image-20251219165634467

  • 按如下填写:

    • Address127.0.0.1

    • Port7897

    • ProtocolSOCKS Version 5

    • Authentication 不用勾(一般 Clash 本地不需要)

      image-20251219165712957

  • Check 测试连通性,确认 OK

    image-20251219165741786

提醒:7897 是我这边 Clash 的 SOCKS 端口,你的端口以 Clash/Verge 的端口设置为准。

2)新增一条“AI”规则,只代理指定程序

  • ProfileProxification Rules...Add...

    或点击图中位置

    image-20251219165831617

    image-20251219165908706

  • NameAI(勾选 Enabled)

  • Applications:填入需要强制走代理的程序:

    • antigravity.exe; language_server_windows_x64.exe; cursor.exe
  • Target hosts:留空(表示不限制域名)

  • Target portsAny

  • Action:选择刚才创建的代理

    • Proxy SOCKS5 127.0.0.1

最后把 AI 规则放到 Default 规则之上(规则是从上往下匹配的),避免被默认规则抢先匹配。

image-20251219165956692

image-20251219170115699

3)效果

  • 只有 AI 相关进程走代理
  • 内网/其他软件照常走直连或按你自己的规则走
  • 对话连接更稳定:不会因为某些程序绕过系统代理而“时通时不通”,也更不容易在长对话时突然断掉