Clash 连不上网:节点是绿的却无法上网,2026 DNS 与分流排查
优选科普
有一种情况特别让人火大:Clash 里节点一片绿、延迟只有几十毫秒,但浏览器就是打不开网页。
好消息是,既然延迟测得出来,就说明你到节点的链路是通的、节点也是好的——Clash 是通过节点发出真实 HTTP 请求才测到那个延迟的。所以问题一定在「流量有没有交给 Clash」和「Clash 把流量往哪送」这两件事上。
按下面五步走,范围会很快收窄。
第一步:流量到底有没有交给 Clash
这是最常见的一类。Clash 自己跑得好好的,但你的浏览器根本没在用它。
判断办法:随便打开一个能反映出口 IP 的页面(或在终端里访问一个返回 IP 的接口),看显示的是不是节点所在地区的 IP。显示的还是你本地 IP → 流量没进代理。
三种可能:
- 系统代理没开。 Clash 里那个「系统代理 / Set as system proxy」开关是关着的。打开它。
- 系统代理开了但没生效。 Windows 上去「设置 → 网络和 Internet → 代理」,看「手动设置代理」里的地址端口是否和 Clash 的混合端口一致(常见是
127.0.0.1:7890)。有时上一个代理软件留下的旧设置会覆盖掉。 - 应用自己不走系统代理。 这是个真实存在的坑:很多程序不读系统代理设置——部分终端工具、Docker、Java 应用、一些游戏客户端、以及某些浏览器插件配置下的浏览器。它们需要单独配置代理,或者你得用 TUN 模式(见第五步)。
第二步:确认这个域名走的是代理还是直连
Clash 的核心是分流:不同的域名/IP 按规则走不同出口。一个域名打不开,可能是它被规则判去了「直连」。
打开 Clash 的连接(Connections)面板,然后刷新那个打不开的页面,看有没有新连接出现、它命中了哪条规则、走的是哪个策略组。
- 连接列表里根本没出现这个域名 → 回第一步,流量没进 Clash。
- 出现了,但出口显示 DIRECT → 规则把它判成直连了。这在两种情况下会发生:你用的规则集把这个域名归到了国内、或者你在某个策略组里手动选了「直连」。
- 出现了,走的是节点,但请求一直挂着不返回 → 进第三步,大概率是 DNS。
顺手检查一下模式:客户端里的「规则 / 全局 / 直连」三个模式,如果误切到了「直连(Direct)」,所有流量都不走节点,节点再绿也没用。排查阶段可以先切到「全局(Global)」——如果切到全局就能上网,那问题 100% 在分流规则里,不在节点。
第三步:DNS——最容易出问题、也最容易被忽略的一环
这一步能解释掉相当大一部分「绿着却打不开」。
原理:你请求 example.com,得先把它解析成 IP。如果这一步用的是国内 DNS,而国内 DNS 对被封域名会返回污染结果(一个错误的、不存在的或指向黑洞的 IP),那么后面就算流量老老实实走了节点,也是在往一个错的 IP 上连——连接必然失败或超时。
怎么判断:
nslookup 打不开的域名 8.8.8.8
nslookup 打不开的域名 223.5.5.5
两个结果差得很远(尤其国内 DNS 返回 0.0.0.0、127.0.0.1,或一个明显不对的地址)→ 就是 DNS 污染。
怎么修:现代 Clash 内核(mihomo / Clash Meta)自带 DNS 模块,关键是让被代理的域名在节点那一侧解析,而不是在本地解析。配置里对应的机制是 fake-ip 模式配合 enhanced-mode:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5 # 国内域名用国内 DNS,解析快
- 119.29.29.29
fallback:
- https://1.1.1.1/dns-query # 境外域名走加密 DNS
- https://8.8.8.8/dns-query
⚠️ 两个注意:
- 大多数机场下发的订阅配置里已经带了一套 DNS 配置。 先看看有没有,别重复写——两处 DNS 配置冲突比没配还麻烦。
fake-ip会和某些软件冲突,典型是需要真实 IP 的局域网设备发现、部分游戏、以及一些企业 VPN 客户端。这类情况下要么改用redir-host,要么把冲突的域名加进fake-ip-filter。
还有一个常见的 DNS 相关症状:网页能打开但很慢、图片加载不全。这往往是 DNS 解析慢或部分资源域名走错了出口,不是带宽问题。
第四步:IPv6
如果你的网络有 IPv6,而代理配置只处理了 IPv4,会出现这种情况:系统优先尝试 IPv6 连接 → 那条路直连出去 → 被阻断或超时 → 才回落到 IPv4。表现就是「打得开,但每次都要等很久」,或者干脆打不开。
验证办法:临时把系统的 IPv6 关掉(网卡属性里取消勾选 IPv6),再试。如果立刻正常了,那就是 IPv6 泄漏。
处理:要么保持 IPv6 关闭,要么在 Clash 配置里正确启用 IPv6 支持(ipv6: true 并确认节点和 DNS 都支持)。两者选一个,最怕的是「半开」状态。
第五步:TUN 模式——什么时候该开,开了之后的坑
前面提到有些程序不读系统代理。TUN 模式(也叫虚拟网卡模式、增强模式)就是为这个存在的:它创建一张虚拟网卡,把系统级的流量整体接过来,程序读不读系统代理都逃不掉。
该开 TUN 的场景:终端命令行工具要走代理、Docker 容器、游戏、以及任何「浏览器能上网但这个软件不行」的情况。
开 TUN 之后的常见问题:
- 需要管理员/root 权限。 创建虚拟网卡是特权操作。Windows 上没「以管理员身份运行」就会启动失败。
- Windows 缺 Wintun 驱动。 报错通常提到
wintun.dll找不到或加载失败,需要客户端把该驱动装好。 - 开了 TUN 反而全断。 多见于同时开着系统代理 + TUN,或者和另一个 VPN 客户端(企业 VPN、WireGuard)抢路由表。排查时只开一个。
- 局域网设备访问不了了。 TUN 把内网流量也接管了,需要在配置里把私有地址段放行直连。
快速对照表
| 现象 | 最可能原因 | 去第几步 |
|---|---|---|
| 出口 IP 还是本地 IP | 系统代理没开 / 没生效 | 一 |
| 切到「全局」就正常了 | 分流规则问题 | 二 |
| 连接面板里显示走了 DIRECT | 规则判成直连 | 二 |
| 网页超时,nslookup 两个 DNS 结果差很远 | DNS 污染 | 三 |
| 每个网站都要等很久才打开 | IPv6 泄漏或 DNS 慢 | 四、三 |
| 浏览器能上,终端/游戏/Docker 不能 | 那些程序不读系统代理 | 五 |
| 开了 TUN 之后全断 | TUN 与系统代理或其他 VPN 冲突 | 五 |
别急着换机场
这类问题几乎都在本机配置层,换机场不会解决——新机场的节点同样会「绿着却打不开」。真正需要考虑换的是节点大面积失效、晚高峰速度塌陷这类服务端问题。
想了解分流规则和线路本身的原理,可以看 BGP 边界网关协议 和 直连线路是什么。节点全红是另一类问题,见 Clash 节点全部变红的六层排查。
顶级 IPLC 专线网络加速体验
稳定、高速、无忧解锁全球流媒体。采用企业级 SLA 在线率保证,是晚高峰 4K 观影和重度外网工作者的绝佳首选。
- 纯净内网专线高峰期不降速
- 原生 IP 节点秒开 Netflix 4K
- 无设备限制全家共享网络
- 特惠高配小包极致性价比之王