故障排查

开了梯子网页还是打不开?系统代理和 TUN 模式讲清楚

开了梯子,节点也能测出延迟,浏览器或某个软件却还是打不开?多半是流量没交给客户端。本文讲清系统代理和 TUN 模式各管什么、什么时候该开 TUN,以及代理模式、浏览器插件、UWP 应用、命令行这几种常见卡点怎么处理。

更新于 约 4 分钟读完梯子去哪买编辑部

一句话回答

节点能测出延迟、网页却打不开,问题一般出在流量没交给客户端。系统代理只是改了系统的代理设置,浏览器和多数软件会照着走,命令行、部分游戏和 UWP 应用不认;TUN 模式建一块虚拟网卡,从路由上接管几乎所有流量,Windows 上要先装服务模式。先确认模式是“规则”、系统代理开关真的生效,再考虑开 TUN。

流量要先交给客户端

梯子客户端在你的电脑上开了一个本地代理端口,Clash Verge Rev 默认是 7897,老的 Clash 客户端多是 7890,以设置页显示的为准。流量得先进这个端口,客户端才能按规则把它送去节点。

节点测得出延迟,说明客户端到机场这一段是通的。网页还是打不开,毛病基本在前一段,你的浏览器或软件根本没把流量交给客户端。把流量交过去的办法有两种,系统代理和 TUN 模式。

系统代理管什么

打开系统代理,客户端会把“127.0.0.1 加端口”写进系统的代理设置。在 Windows 上可以亲眼看到,打开设置 → 网络和 Internet → 代理,手动设置代理下面的“使用代理服务器”会变成打开状态,地址就是这个本地端口。

这只是一条建议,软件听不听由它自己决定。浏览器和大部分软件会照着走,所以日常上网开系统代理就够了。不听的也不少,终端里的 git、curl 靠环境变量,部分游戏直接自己联网,微软商店这类 UWP 应用默认连本机的代理都不让连。

TUN 模式管什么

TUN 模式会在系统里建一块虚拟网卡。按 mihomo 文档的说法,开启自动路由以后,全局流量会被路由进这块网卡,客户端再按规则分流。它不靠软件自觉,所以能接住那些不认系统代理的程序。

代价是要更高的权限。Clash Verge Rev 的提示写明,TUN 模式需要安装服务模式或管理员模式,在 Windows 上先在设置里点“安装服务”,弹出管理员授权时点“是”。v2rayN 也要以管理员身份运行才能开 TUN。开了 TUN 就不用再开系统代理,Clash Verge Rev 的说明也是这么写的。

对比项 系统代理 TUN 模式
原理 改系统代理设置,软件自己决定听不听 建虚拟网卡,从路由上接管流量
能管到的程序 浏览器和大部分软件 几乎所有程序,包括命令行和游戏
权限 一般不需要 Windows 上要服务模式或管理员
常见毛病 退出后设置残留,被别的软件改掉 服务装不上,和其他 VPN 冲突
适合 新手日常上网 不认系统代理的程序

手机上基本不用纠结这件事。安卓和 iPhone 的梯子客户端都以 VPN 的方式运行,打开后系统把流量交给它,效果相当于电脑上的 TUN。

网页打不开,按这个顺序查

先看代理模式。 Clash 类客户端有规则、全局、直连三种。选成“直连”,所有流量都不走节点。日常用“规则”,按规则分流,国内网站直连、国外网站走节点。

再看系统代理是不是真的开着。 客户端里的开关显示打开,不代表系统设置里还是它。有的软件会改动系统代理,去 Windows 的代理设置里看一眼地址和端口对不对。Clash Verge Rev 的系统代理设置里有个“系统代理守卫”,开启后能防止别的软件改掉这项设置。

然后看浏览器插件。 装了 SwitchyOmega 这类代理插件,浏览器会听插件的,不听系统的。把插件切到“系统代理”,或者按插件里填的端口核对一遍。

最后看是不是这个程序不认代理。 浏览器正常、只有某个软件不行,多半就是这种情况,直接换 TUN 模式最省事。

两类程序有专门的办法。终端程序靠环境变量走代理,curl 的文档写明它会读取 http_proxy、https_proxy 这类变量,Clash Verge Rev 的托盘菜单里有“复制环境变量”,粘贴到终端执行就行。UWP 应用从 Windows 8 起就被限制访问本机的网络服务。Clash Verge Rev 的设置里有 UWP 工具,把要联网的应用勾上即可;Clash Party 也有同样的工具,见Clash Party Windows 教程。

开 TUN 常见的坑

服务装不上时,先想安全软件。360、金山毒霸这类安全软件可能拦截服务安装,导致开关打不开或者一开就闪退,先退出它们再装。

同时开着别的 VPN 或加速器,两块虚拟网卡可能会抢路由。开 TUN 之前把它们关掉,测试时只留一个客户端。

在学校用锐捷这类认证客户端上网的,多出一块虚拟网卡可能和认证客户端冲突,相关情况见校园网能用梯子吗。

退出以后上不了网

这是系统代理的老问题。客户端异常退出或者电脑突然断电,系统代理设置没来得及撤掉,系统还在把流量往一个已经关掉的端口送,结果国内网站也打不开。

重新打开客户端,关掉系统代理再退出就好。客户端打不开的话,手动去 Windows 设置 → 网络和 Internet → 代理,在手动设置代理下关闭“使用代理服务器”。v2rayN 用户也可以在托盘菜单点“清除系统代理”。

装客户端、导入订阅这些基础步骤,Windows 上可以照着Clash Verge Rev Windows 教程或v2rayN Windows 教程做。节点本身都测不出延迟的,先看梯子节点全部超时怎么办。

常见问题

系统代理和 TUN 模式要一起开吗?

不用。Clash Verge Rev 的说明写明,TUN 模式接管系统所有流量,启用时无须打开系统代理。只开一个也更容易排查,平时用系统代理,碰到不认代理的程序再换成 TUN。

为什么开了梯子,游戏还是没走代理?

不少游戏和客户端软件不读系统代理设置,流量直接发出去了。可以改用 TUN 模式接管,或者看游戏本身有没有代理设置。另外要确认游戏服务器的域名在分流规则里走的是节点。

手机上也要分系统代理和 TUN 吗?

一般不用。安卓和 iPhone 上的梯子客户端都是以 VPN 的方式运行,打开以后系统会把流量交给它,相当于电脑上的 TUN。FlClash 教程里电脑版的系统代理开关,在手机上对应的就是 VPN 卡片。

命令行里的 git、curl 怎么走代理?

终端程序一般靠环境变量走代理,curl 的文档写明它会读取 http_proxy、https_proxy 这类变量。Clash Verge Rev 的托盘菜单里有“复制环境变量”,粘贴到终端执行即可,也可以直接开 TUN 模式。

关掉梯子以后电脑上不了网怎么办?

客户端没正常退出时,系统代理设置会留在系统里。重新打开客户端关掉系统代理再退出,或者打开 Windows 设置,进入网络和 Internet 里的代理,在手动设置代理下关闭“使用代理服务器”。

参考资料

  1. Microsoft 支持,在 Windows 中使用代理服务器
  2. 虚空终端 mihomo 文档,TUN 入站配置
  3. Everything curl,代理环境变量
  4. Clash Verge Rev 官方仓库
  5. v2rayN 官方仓库
下一步

看懂了就动手:先挑一家机场,再按设备装客户端。