Clash 无法上网怎么办:连上代理后打不开网页的逐项排查清单
从系统代理开关、规则模式、DNS 设置到订阅有效性,按顺序逐项检查 Clash 显示已连接但无法上网的常见原因,每一步都给出验证方法。
一、先定位问题出在哪一环
浏览器打开一个网页,请求要依次经过:浏览器、系统代理、Clash 本地端口(默认 7890)、代理节点、目标网站。这条链路上任何一环断开,最终表现都是"网页打不开",但每一环的修法完全不同。所以第一步不是急着改设置,而是先定位断点在哪里。
最快的定位方法,是看 Clash 的连接面板:
- 打开 Clash 客户端,切换到"连接"(Connections)页面。
- 保持面板可见,回到浏览器,刷新那个打不开的网页。
- 观察连接列表的变化。
如果没有任何新记录出现,说明请求根本没到达 Clash,问题出在系统代理或浏览器设置,直接看第二步。如果有新记录出现但网页依旧打不开,说明请求到了 Clash 但转发失败,问题在代理模式、节点、DNS 或订阅,从第三步开始查。先分清这两类情况,后面的步骤就不用挨个盲试。
二、确认系统代理已经生效
系统代理没开,是"Clash 明明显示已连接、网页却打不开"最常见的原因:Clash 自己在运行,但浏览器的流量根本没有被交给它。
检查与修复:
- Clash for Windows 在主界面打开"系统代理"(System Proxy)开关;Clash Verge、Clash Nyanpasu 等客户端在设置里同样有"系统代理"一项,确认它处于开启状态。
- Windows 验证:打开"设置 → 网络和 Internet → 代理","使用代理服务器"应为开启,地址为 127.0.0.1,端口与 Clash 的混合端口一致(默认 7890;若在配置里改过 mixed-port,以改后的为准)。
- macOS 验证:打开"系统设置 → 网络",选中当前网络进入"详细信息 → 代理","网页代理(HTTP)"与"安全网页代理(HTTPS)"应勾选,服务器为 127.0.0.1 与对应端口。
几个高频坑:
- Clash 的端口被改过,系统代理里却还是旧端口,两端对不上。
- 另一款代理或加速器软件在 Clash 之后又改写了系统代理设置。
- 浏览器装着 SwitchyOmega 一类的代理插件,走插件自己的配置,完全绕过系统代理。排障期间先把这类插件停用。
验证方法:用浏览器打开任意一个 IP 查询网站,显示的出口 IP 应当是节点所在地区,而不是本地运营商的地址。
想确认"Clash 到节点"这一段本身是否畅通,可以在命令行执行:
curl -x http://127.0.0.1:7890 -I https://www.google.com
这条命令让流量直接走 Clash 的本地端口,不依赖系统代理。能返回 HTTP 响应头,说明 Clash 与节点之间是通的,问题锁定在系统代理或浏览器;连接失败,则说明 Clash 到节点这一段不通,优先查第三到第五步的模式、节点与订阅。
三、检查代理模式与当前节点
系统代理正常之后,下一个要确认的是:流量到达 Clash 之后,被送去了哪里。
- 确认代理模式。Clash 有规则(Rule)、全局(Global)、直连(Direct)三种模式。Direct 模式下所有流量都直连,等于没开代理,先确认自己没有停在 Direct。
- 规则模式下,检查策略组当前选中的节点。如果选中项是 DIRECT,或者是一个已经超时的节点,网页照样打不开,把策略组切到延迟正常的节点上。
- 在节点列表执行一次延迟测试(通常是测速或闪电图标),把所有 timeout 的节点排除出候选。
验证方法:临时把模式切到 Global,选一个延迟正常的节点,再刷新目标网页。能打开,说明之前是规则分流或所选节点的问题;仍然打不开,继续往下查 DNS。
四、排查 DNS 解析问题
DNS 出问题有一个很典型的现象:不是所有网站都打不开,而是只有一部分打不开;或者能 ping 通 IP,却 ping 不通域名。
逐项检查:
- 打开当前使用的配置文件,确认 dns 段存在且 enable 为 true,nameserver 里填的是可用的公共 DNS。整段缺失时 Clash 会退回系统 DNS,在域名解析被污染的网络环境里很容易拿到错误结果。
- 清掉旧解析缓存:Windows 在命令行执行
ipconfig /flushdns;浏览器可以打开 chrome://net-internals/#dns 清除缓存,或者直接重启浏览器。 - 检查浏览器的"安全 DNS"(DNS over HTTPS)开关。它开启时浏览器会绕过系统 DNS 自行解析,可能与 Clash 的 DNS 接管互相打架,排障期间先关闭。
- 用
nslookup加目标域名验证解析链路。能稳定返回结果即说明解析在工作;如果 Clash 的 DNS 工作在 fake-ip 模式,返回 198.18 开头的地址属于正常现象,不是故障。
DNS 各字段的详细填法与防泄漏配置,可以在使用手册里继续查;这里先把"能不能正常解析"这一关过了再说。
五、检查订阅与节点是否仍然有效
如果节点列表里大面积 timeout,问题多半不在本机,而在订阅这一头。
- 在配置页面对当前订阅执行一次"更新",拉取最新节点列表。列表长期不更新,里面的节点可能早已下线。
- 登录服务提供商的后台,确认套餐没有到期、流量没有用完、订阅链接没有被重置。链接一旦重置,旧配置拉到的就是失效内容,需要用新链接重新导入。
- 更新完成后重新做一次延迟测试,确认至少有一个节点延迟正常,再切回规则模式验证网页。
一条经验:单个节点 timeout 是节点本身的问题;全部节点 timeout,优先怀疑订阅和本地网络。
六、TUN 模式、防火墙与软件冲突
前面五步都没解决,就要往系统层面看了。
- TUN 模式需要额外组件:Clash for Windows 要安装 Service Mode,Clash Verge 需要安装服务模式并授权。组件没装好就打开 TUN,典型表现是"一开 TUN 就断网,关掉就恢复"。排障期间建议直接关掉 TUN,只用系统代理,少一个变量。
- Windows 防火墙或第三方安全软件可能拦截了 Clash 内核的联网请求,把客户端程序加入允许列表后再试。
- 同时运行多款代理、VPN 或网游加速器,会互相争抢系统代理和路由表。排障时只保留 Clash 一个,其余全部退出。
- 以上都无效时,重启客户端;还不行就重启系统,清掉可能残留的端口占用。
排查时一次只改一项设置,改完立即验证。同时改动多处再测试,即使恢复了也不知道是哪一步起的作用,问题还会再犯。
七、按现象速查
把上面的清单压缩成一张表,下次遇到问题可以直接按现象对号入座:
| 现象 | 大概率原因 | 先看哪一步 |
|---|---|---|
| 连接面板没有任何新记录 | 系统代理未生效或被插件绕过 | 第二步 |
| 有连接记录,但所选节点 timeout | 节点失效或策略组选错 | 第三步 |
| 只有部分网站打不开 | 规则分流或 DNS 解析异常 | 第三、四步 |
| 一开 TUN 模式就断网 | 服务模式未安装或权限不足 | 第六步 |
| 全部节点 timeout | 订阅过期、套餐到期或本地拦截 | 第五、六步 |
| 手机能用、电脑打不开(同一订阅) | 电脑端系统代理、防火墙或端口配置问题 | 第二、六步 |
八、排障时的几个好习惯
最后补几条和具体故障无关、但能省时间的习惯。
- 先备份再动手。改动配置文件之前,把当前能用的配置导出一份,改坏了可以一键退回。
- 固定一个验证网址。每次改动后都用同一个目标网站测试,避免"换了个网站又好了"造成的误判——有些网站本身就不稳定。
- 记住最后做了什么。问题往往出现在最近一次改动之后:更新了订阅、升级了客户端、装了新软件。排查从"最近的变化"倒推,通常比从头查一遍快。
- 升级客户端后出问题,先回退版本验证。如果旧版本正常、新版本异常,说明是版本兼容问题,可以到对应项目的发布页查看已知问题说明。
按这份清单走一遍,绝大多数"连上了却打不开网页"的情况都能定位到具体环节。如果最终确认是订阅侧的问题,本地再怎么调也解决不了,直接联系服务提供商才是正解。