Clash连接不上网怎么办?按现象和日志逐步定位
简答:Clash连接不上网时,不要先改DNS或盲目开启TUN:先关闭Clash确认普通网络正常,再读取客户端实际监听端口,用curl分别测试直连和代理,最后根据日志判断是系统代理、节点、DNS、规则还是TUN问题。Windows、macOS可直接执行命令;Android和iOS重点检查VPN权限、后台运行、应用分流与其他VPN冲突。
定义:Clash连接不上网,是指客户端可能显示运行或已连接,但请求没有正确进入代理入口、没有通过所选节点,或被DNS、规则、系统路由和TUN配置阻断。
先做这一步:关闭Clash,确认问题到底在本地网络还是代理链路
先完全退出Clash或关闭系统代理,再打开一个平时可访问的网站。若关闭后仍打不开,先处理Wi-Fi、移动数据、门户认证、路由器或系统网络;若关闭后能打开,才继续检查Clash配置。这个分流能避免把普通断网误判为节点故障。
- 关闭Clash后恢复正常:进入下面的代理端口、节点、DNS、规则和TUN排查。
- 关闭Clash后仍不能访问:先重连当前网络,检查默认网关和DNS;Windows可执行
ipconfig /all查看地址、网关和DNS,再用ipconfig /flushdns清理解析缓存。微软文档说明,/flushdns会清空并重置DNS客户端缓存。Microsoft Learn:ipconfig - 只有某个浏览器或应用失败:先检查该应用是否使用独立代理、浏览器DoH、应用内DNS或自己的网络权限,不要立即修改全局配置。
截至2026-10-19,Clash Verge Rev项目公开说明其客户端支持Windows、macOS和Linux,并包含系统代理与TUN模式;不同客户端的菜单名称、默认端口和内核版本可能不同,下面一律以客户端界面显示的实际值为准。Clash Verge Rev项目说明
按故障现象分流:先判断应该查哪一层
| 现象或报错 | 优先检查 | 可执行动作与判读 |
|---|---|---|
| Clash未运行,所有网页正常 | 客户端进程与启动状态 | 重新启动客户端;若启动即退出,查看客户端日志和配置解析错误,不要先改DNS。 |
| Clash运行,但浏览器完全打不开 | 系统代理、实际端口、节点 | 读取客户端显示的HTTP、SOCKS5或Mixed端口;端口未监听时,系统代理即使开启也无法连接。 |
| 命令提示 connection refused | 本地代理入口 | 通常表示目标本机端口没有程序监听、端口填错或客户端已退出。执行端口检查,改用客户端当前显示的端口。 |
| 命令提示 dial timeout、i/o timeout | 节点、网络或远端服务 | 切换一个节点并重试;若全部节点超时,检查订阅是否过期、流量是否用尽、节点是否全部失效,必要时向服务提供方核实。 |
| 提示 TLS handshake failed | 系统时间、SNI、节点握手 | 确认系统日期、时间和时区自动同步;切换节点后再试。不要为了绕过错误长期关闭证书校验。 |
| 提示 DNS timeout、no such host | Clash DNS、系统DNS或浏览器DoH | 先关闭浏览器DoH或改用另一种解析路径做对照,再清理系统DNS缓存;只改一个变量并重试。 |
| 连接记录显示 DIRECT | 规则或策略组 | 规则模式下,DIRECT表示该请求按直连出口处理;检查目标域名是否命中了直连规则、REJECT或没有节点的策略组。 |
| 只有大文件、视频或特定网站失败 | 节点协议、UDP、IPv6、MTU与分流 | 先用同一节点访问普通HTTPS网页,再逐项测试IPv6、UDP或TUN;不要同时修改MTU、DNS和规则。 |
| TUN开启后整体断网 | 虚拟网卡、权限、默认路由、其他VPN | 先关闭TUN恢复连接,再退出其他VPN或网络过滤软件,重新授予权限后只开启TUN测试。 |
注意:表中的端口只是示例概念,不要默认使用7890或10809。Mihomo文档区分HTTP端口、SOCKS端口和Mixed端口;Mixed端口同时支持HTTP(S)与SOCKS5,但具体数值由当前配置决定。Mihomo文档:代理端口
检查实际代理端口:HTTP、SOCKS5和Mixed到底怎么选
打开客户端的配置、端口或入站设置,记录当前启用的端口。浏览器通常使用HTTP或HTTPS代理入口;支持SOCKS5的应用使用SOCKS5入口;如果客户端只启用了Mixed端口,可在支持HTTP或SOCKS5代理的应用中使用同一个Mixed端口。不要把外部控制器端口当作代理端口,external-controller是管理API监听地址,不是给浏览器转发网页的入口。Mihomo文档:全局配置与外部控制
- 记录监听地址,通常本机测试使用
127.0.0.1或localhost。 - 记录启用的
port、socks-port或mixed-port,只测试实际存在的端口。 - 在客户端连接记录中发起一次网页请求,确认是否出现目标域名。
- 若连接记录完全没有请求,问题多半在系统代理、浏览器代理、应用不走系统代理或端口填写错误。
Windows端口与代理测试
在命令提示符中,把实际端口替换成客户端显示的数字:
netstat -ano | findstr LISTENING
找到对应本地端口后,再测试HTTP代理:
curl.exe -I --proxy http://127.0.0.1:实际端口 https://example.com
判读:出现HTTP响应头,说明请求至少进入了本地代理入口;如果是Failed to connect或connection refused,先修正端口或启动客户端。若进入代理后长时间无响应,再查节点和DNS。
macOS端口与代理测试
终端执行:
lsof -nP -iTCP:实际端口 -sTCP:LISTEN
然后执行:
curl -I --proxy http://127.0.0.1:实际端口 https://example.com
若使用SOCKS5入口,将代理参数改为--proxy socks5h://127.0.0.1:实际端口;socks5h让域名解析交给代理端测试,适合区分本地DNS与代理链路问题。macOS系统代理路径为“系统设置→网络→选择网络服务→详细信息→代理”,Apple说明该处可分别配置HTTP、HTTPS、SOCKS和PAC。Apple支持:更改Mac代理设置
Windows、macOS、Android、iOS分别怎么查系统代理和VPN权限
Windows
- 在“设置→网络和Internet→代理”检查手动代理或自动配置是否与客户端状态一致;客户端关闭后若系统代理仍开启,浏览器可能继续访问失效的本地端口。
- 在管理员或普通命令提示符中执行
ipconfig /all,确认当前网卡有有效地址、默认网关和DNS;执行ipconfig /flushdns后重新测试。 - 如果客户端启用TUN,先关闭其他VPN、虚拟网卡管理工具和可能拦截网络的安全软件,再重新授予TUN权限。TUN是接管系统流量的虚拟网卡路径,不等同于普通浏览器代理。
macOS
- 打开“系统设置→网络→当前网络→详细信息→代理”,确认HTTP、HTTPS或SOCKS的地址和端口与客户端一致;Apple列出的代理类型包括自动发现、PAC、HTTP、HTTPS和SOCKS。Apple支持:Mac代理类型与路径
- 终端执行
scutil --proxy查看系统代理状态,执行scutil --dns查看当前DNS解析配置。若系统代理显示关闭,而客户端只依赖系统代理,浏览器不会自动进入Clash。 - 若开启TUN后断网,先关闭TUN并确认普通系统代理可用,再检查虚拟网卡、权限和其他VPN是否同时接管默认路由。
Android
- Clash类移动客户端通常需要系统VPN授权;连接时若系统弹出VPN请求,必须确认授权,否则客户端可能显示启动但没有接管流量。Android的
VpnService机制要求应用先取得用户同意,且同一时间只有一个应用成为当前VPN服务。Android Developers:VPN连接 - 如果状态栏没有VPN图标、系统VPN设置中没有当前客户端,先断开其他VPN并重新连接。
- 在系统电池设置中允许客户端后台运行,关闭对该应用的省电限制;若只有锁屏后失败,优先判断后台保活而不是DNS。
- 检查应用分流、绕过列表和“仅允许选定应用”设置。若浏览器能用但某个应用不能用,先确认该应用是否被排除。
iOS
- iOS客户端通常通过系统VPN配置或Network Extension接管流量;首次连接需要用户授权,若系统VPN开关未建立或被其他VPN占用,客户端可能无法接管网络。Apple说明iOS应用可以通过Network Extension管理VPN配置,但功能受平台和应用实现限制。Apple Developer:Network Extension
- 先在“设置→VPN”确认当前VPN配置已连接,再回到客户端检查节点、模式和应用分流。
- 若仅某个应用失败,检查该客户端是否提供按应用分流、排除域名或代理模式;iOS不同客户端界面差异较大,无法用一个固定菜单路径代替。
- 若同时安装了多个VPN、DNS过滤或网络安全应用,逐个断开,只保留一个网络接管组件进行测试。
DNS、浏览器DoH、Fake-IP与缓存:怎么做最小对照测试
DNS问题的典型表现是IP连接可能正常,但域名解析失败、首次打开很慢或只有部分域名失败。Mihomo支持系统DNS、增强模式以及fake-ip和redir-host等DNS处理方式;修改前应记录原配置,避免一次改动多个选项。Mihomo文档:DNS配置
- 先测域名解析:Windows执行
nslookup example.com;macOS执行scutil --dns查看配置,再执行dscacheutil -q host -a name example.com。如果解析无结果或超时,先处理DNS层。 - 再测代理解析:使用
curl --proxy socks5h://127.0.0.1:实际端口 -I https://example.com。如果socks5h成功而普通curl失败,说明本地解析路径可能有问题。 - 检查浏览器DoH:浏览器启用加密DNS时,可能绕过系统DNS或客户端预期的解析路径。临时关闭DoH做一次对照;若关闭后恢复,保留结论并根据客户端文档选择兼容配置。
- 清理缓存:Windows使用
ipconfig /flushdns;macOS可先退出受影响应用并重新连接网络,再重新执行域名查询。清缓存只能清除本地缓存,不能修复节点失效或远端DNS故障。 - 检查Fake-IP:若只有内网域名、局域网设备、公司办公系统或需要真实解析地址的应用失败,先检查Fake-IP过滤和内网域名处理,不要直接把所有DNS改成固定公共DNS。
规则、节点和订阅:如何判断是“走错路”还是“节点坏了”
- 切换模式做对照:规则模式下只对目标域名做测试;临时切换全局模式并选择一个节点,再访问同一目标。全局模式成功、规则模式失败,优先查规则和策略组;两者都失败,优先查节点或代理入口。测试完成后恢复原来的规则模式。
- 看连接记录:请求出现并显示某个代理节点,说明流量已进入客户端;显示
DIRECT说明按直连策略处理;显示REJECT或类似拒绝动作,说明规则阻断了请求。Mihomo文档将DIRECT定义为直接出口、REJECT定义为拒绝请求。Mihomo文档:DIRECT与REJECT - 切换一个已知可用节点:不要只在同一策略组中重复测速;换到不同地区或不同协议的节点做对照。若只有一个节点失败,倾向于节点或该节点协议问题;若全部节点失败,检查订阅状态、流量限制、配置更新时间和服务端整体故障。
- 核对订阅:检查最近一次更新是否成功、配置文件是否能正常解析、节点列表是否为空、节点名称是否都显示超时。订阅过期、流量用尽或服务端故障无法由本地DNS修复,应向服务提供方核实。
- 不要把测速结果当作网页可用性:延迟测试成功只说明某一类探测完成,不能保证浏览器、视频、办公软件或UDP流量都可用。
TUN开启后断网:按权限、路由、网卡和MTU顺序恢复
TUN会接管更广泛的系统流量,因此比普通系统代理更容易和其他VPN、虚拟网卡、杀毒软件或默认路由发生冲突。Mihomo文档说明,TUN可用于接管系统流量、自动路由和DNS劫持;Clash Verge Rev项目也将TUN描述为虚拟网卡模式。Mihomo文档:入站与TUN
- 关闭TUN,保留系统代理或直接关闭Clash,确认普通网络恢复。
- 退出其他VPN、网络加速器、虚拟网卡工具和安全软件的网络过滤功能,只保留一个流量接管组件。
- 重新启动客户端并授予管理员或系统VPN权限;Windows检查虚拟网卡是否出现,Android检查系统VPN是否已连接,iOS检查“设置→VPN”是否建立连接。
- 先使用默认路由和默认MTU测试,不要直接照搬别人的MTU数值。若只有大文件、视频或特定网络失败,再逐步调整MTU,每次只改一个值,并记录改动前后的现象。
- 如果修改MTU后完全断网,立即恢复原值;MTU问题需要结合链路、协议和分片现象判断,不能仅凭“网页慢”下结论。
排查完成后的恢复清单:避免测试配置继续影响上网
- 把全局模式恢复为原来的规则模式,取消为了测试而选择的临时节点。
- 关闭临时开启的TUN、严格路由、DNS覆写或浏览器DoH对照设置,除非你已确认它们适合当前网络。
- 恢复系统代理:Clash关闭后,Windows、macOS和浏览器都不应继续指向已停止监听的本地端口。
- 保存一份能正常工作的配置,记录客户端版本、内核版本、节点名称、模式、DNS模式和是否开启TUN。
- 再次执行一次普通网页、域名解析和代理命令测试,确认不是“只恢复了浏览器缓存”。
- 如果仍失败,整理脱敏后的日志关键词、系统、客户端名称、实际端口、测试节点和复现时间,再向客户端项目或服务提供方反馈。
本站与边界云加速属同一项目;本文只提供网络层排查方法,具体服务状态、订阅状态和节点可用性仍应以对应服务页面及实际连接记录为准。
常见问题
Clash显示已连接,但浏览器为什么还是打不开?
“已连接”通常只代表客户端或VPN通道已启动,不等于浏览器请求已经进入代理并成功到达目标。先检查浏览器是否使用系统代理,再核对客户端实际HTTP或Mixed端口,用curl -I --proxy http://127.0.0.1:实际端口 https://example.com测试;若命令也失败,再看节点和DNS。
是不是把端口改成7890就能解决?
不能。7890、7891、7892等只是常见示例,当前配置可能使用其他端口。应以客户端端口页面或配置文件中的port、socks-port、mixed-port为准,并用netstat或lsof确认该端口确实处于监听状态。
只有部分网站打不开,是节点还是DNS问题?
先用同一节点访问普通HTTPS网站,再用命令查询目标域名;若域名解析失败或代理DNS测试成功而系统解析失败,优先查DNS、浏览器DoH或Fake-IP。若解析正常但连接超时,切换节点并查看日志中的超时位置。
规则模式下显示DIRECT,是否说明Clash失效?
不一定。DIRECT表示该请求按直连策略处理,并不代表客户端失效。若目标请求本来应走代理,检查规则顺序、目标域名、策略组选择和是否命中REJECT;可临时切换全局模式做对照,测试后恢复规则模式。
Android或iOS能不能同时开两个VPN客户端?
通常不应这样排查。Android系统同一时间只允许一个应用成为当前VPN服务;iOS的VPN配置也受系统授权和Network Extension实现限制。先断开其他VPN、DNS过滤和网络安全应用,只保留一个客户端测试。
TUN一打开就断网,应该先改MTU吗?
不应该。先关闭TUN确认网络恢复,再检查其他VPN、虚拟网卡、权限和默认路由;使用默认MTU做基线。只有当问题表现与特定链路或大流量传输相关时,才逐项测试MTU,并保留原值以便回滚。
常见问题
Clash显示已连接,但浏览器为什么还是打不开?
先检查浏览器是否使用系统代理,再核对客户端实际HTTP或Mixed端口,用curl测试。若本地代理测试失败,查端口;若进入代理后超时,查节点和DNS。
是不是把端口改成7890就能解决?
不能。7890只是常见示例,必须以当前客户端显示的port、socks-port或mixed-port为准,并确认该端口正在监听。
只有部分网站打不开,是节点还是DNS问题?
先测试同一节点下的普通HTTPS网站和目标域名解析。解析失败偏向DNS或DoH问题;解析正常但连接超时,优先切换节点并查看日志。
规则模式下显示DIRECT,是否说明Clash失效?
不一定。DIRECT表示请求按直连策略处理。若目标应走代理,检查规则顺序、策略组、目标域名和REJECT规则。
Android或iOS能不能同时开两个VPN客户端?
不建议。Android同一时间只有一个应用能成为当前VPN服务;iOS也受系统VPN授权和客户端实现限制。排查时先断开其他VPN和DNS过滤应用。
TUN一打开就断网,应该先改MTU吗?
不应该。先关闭TUN确认网络恢复,再检查其他VPN、虚拟网卡、权限和默认路由;MTU只应在完成基础排查后逐项测试。