CLASH / DIAGNOSTIC NOTES

Clash 常见问题与故障排查

按现象查端口、权限、规则与 DNS。先复现一次失败请求,再改一个配置项。

CONCEPTS / 内核与接管

基础认知

Clash、mihomo 和图形客户端分别负责什么?

Clash 是代理内核与配置生态的名称,原版项目已停止维护;mihomo 是继续发展的兼容内核,扩展了协议、规则和网络栈能力。图形客户端负责订阅管理、策略组选择、系统代理与服务安装,实际转发由内核执行。排障时同时记录客户端名称和内核信息,不能只写 Clash 最新版。界面支持某个开关,也不代表当前内核接受对应字段;配置报错时应先对照内核文档,再确认客户端是否覆盖了原配置。

安装客户端后,为什么还需要订阅或节点配置?

客户端提供本地监听、规则判断和流量转发能力,不会凭安装动作生成可用的远端代理。订阅通常包含节点、策略组和规则,也可能只提供节点集合,需要配合本地模板使用。先在配置页面确认导入结果,再检查策略组是否有可选项目。不要把订阅地址贴到公开讨论区,它常含账户访问凭据;发生泄露应到提供方重置链接。本站提供客户端资料与配置说明,不签发订阅,也不能恢复提供方账户。

规则、全局和直连模式应该怎样选择?

日常使用通常选择规则模式,让请求按配置中的 rules 顺序匹配;全局模式将已进入内核的请求交给全局策略选择,适合临时判断是否为分流规则问题;直连模式则让已进入内核的请求直接连接。三种模式都不能替代系统代理或 TUN 接管。切换到全局后恢复访问,只能说明原分流路径值得检查,不能证明所有网络故障已解决。测试结束切回规则模式,并查看连接记录里实际命中的规则与策略。

系统代理与 TUN 模式有什么区别,可以一起开吗?

系统代理写入操作系统的代理设置,主要影响愿意读取这些设置的应用;TUN 建立虚拟网络接口,通过路由接管更多程序的流量,通常需要服务或提升权限。两者在部分客户端中可以并用,但是否正确取决于路由排除、DNS 与内核实现。首次配置先只开系统代理验证浏览器,再根据游戏、命令行等需求启用 TUN。若并用后出现循环连接、异常占用或断网,先关闭其中一种接管方式,保留可复现的最小配置。

遇到问题时,需要准备哪些日志信息?

记录操作系统、客户端名称、内核信息、接管方式和故障发生的具体时间,再保留一次失败请求附近的日志。重点查看配置加载错误、监听地址、DNS 解析失败、连接目标与命中策略,必要时短时提高日志级别,复现后恢复默认。分享前删除订阅地址、认证字段、节点服务器和个人访问记录,截图也要检查地址栏。描述浏览器可用但某应用失败,比只说连不上更有用;一次只改一个变量,日志才不会变成网络版猜谜。

SETUP / 订阅与权限

安装配置

订阅更新失败或提示失效,应该按什么顺序检查?

先检查设备时间与基础网络,再到提供方账户页面确认订阅是否过期、额度是否耗尽、链接是否被重置。查看更新日志中的 HTTP 状态:401 或 403 通常与授权或访问限制有关,404 可能是地址变化,超时则要继续检查解析与访问路径。若客户端支持选择更新方式,可分别测试直连更新和通过已有可用代理更新。保留最近一次可用配置,不要反复删除重建;下载到登录页或验证页时,即使请求成功,也不是可导入的配置。

导入订阅成功,但节点列表为空或出现 YAML 错误怎么办?

先确认导入的是完整 Clash 配置、节点集合还是普通网页。节点集合应放进对应的代理提供者或客户端模板,不能直接当作完整运行配置。对 YAML 错误,优先查看日志给出的行号及其上一行,检查缩进是否使用空格、列表短横线是否正确,以及冒号后的字符串是否需要引号。随后确认当前内核支持订阅中的协议和字段。导入完成后还要选中该配置并重新加载;配置列表里有记录,不等于内核已切换到它。

系统代理开关已打开,浏览器为什么仍未经过代理?

先在客户端日志确认 mixed-port 的实际监听端口,再检查系统 HTTP 与 HTTPS 代理是否指向同一个本地地址和端口,例如 127.0.0.1:7890。端口只是示例,以当前配置为准。关闭浏览器独立代理扩展后重启浏览器,检查其是否改用单独的代理配置或组织策略。可以执行 curl -x http://127.0.0.1:7890 -I https://example.com 测试显式代理;若该命令可用而浏览器失败,重点排查浏览器设置与系统代理写入,而非立刻更换节点。

开启 TUN 提示权限不足或虚拟网卡创建失败怎么办?

先关闭其他 VPN 与同类虚拟网卡工具,再按客户端说明安装或修复服务模式。Windows 检查服务是否启动及安全软件拦截记录;macOS 在系统设置中确认相关网络扩展或 VPN 授权;Linux 检查 /dev/net/tun 是否存在,以及启动服务是否具有所需网络管理权限。不要长期通过关闭系统防护来换取启动成功,也不要随意给未知文件授予权限。完成授权后重启内核,仍失败时读取第一条网卡或路由错误,而不是只看界面上的总开关。

修改配置后不生效,应该改订阅文件还是覆写设置?

先确认正在编辑的是当前生效配置,再检查客户端是否在加载时追加了覆写、脚本或合并设置。直接修改远程订阅下载文件,下一次更新可能被覆盖;长期保留的端口、DNS 和自定义规则更适合通过客户端提供的覆写功能维护。修改前导出副本,每次只调整一组字段,保存后执行重新加载并检查日志。不同客户端的数组合并策略可能不同,尤其注意 rules 是追加还是替换;以最终运行配置为准,不以编辑器里某一份文件为准。

WORKFLOW / 规则与维护

使用技巧

怎样让指定网站直连,并确认规则真正命中?

在规则模式下,将 DOMAIN-SUFFIX,example.com,DIRECT 放在可能提前匹配的宽泛规则之前,并保留末尾的兜底规则。DOMAIN-SUFFIX 同时覆盖该域名及其子域名;只想匹配单个完整主机名时使用 DOMAIN。保存并重新加载后,关闭目标网站的旧连接,再发起新请求,在连接面板查看规则类型和最终策略。网页可能同时访问多个资源域名,只放行主域名未必覆盖全部请求。规则不会追溯改变已经建立的长连接,必要时断开相关连接后重试。

如何允许局域网设备使用代理,又避免暴露端口?

先确认确有共享需求,再启用 allow-lan,并让监听地址覆盖需要接入的网卡。其他设备应填写运行客户端那台电脑的局域网地址,不能填写 127.0.0.1;后者始终指向设备自身。同时在主机防火墙中仅允许可信子网访问代理端口,按客户端能力设置代理认证,并确认路由器没有将端口映射到公网。管理接口与代理端口用途不同,不应顺手一并开放。共享测试完成后可关闭局域网连接选项,减少长期监听的接口范围。

命令行工具不读取系统代理,应该怎样临时设置?

先用工具自身的代理参数验证,例如 curl -x http://127.0.0.1:7890 -I https://example.com,再根据终端与工具文档设置 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY。变量名中的 HTTPS 通常描述目标请求类型,不代表代理入口必须使用 HTTPS;协议应与本地监听能力一致。环境变量一般只影响当前进程及其子进程,已打开的终端或后台服务可能不会更新。测试后移除临时设置,避免客户端退出后命令仍指向失效端口;涉及域名解析时,也要区分本地解析与代理端解析。

需要 Clash 订阅转换时,应注意什么?

先确认提供方是否已有适配当前内核的订阅格式,能直接使用就不必增加转换环节。确实需要转换时,优先使用可信的本地工具,并明确输入是节点链接、节点集合还是完整配置。把完整订阅交给在线转换服务,相当于将其中的访问凭据与节点信息交给该服务。转换完成后检查代理组引用、规则顺序和协议字段,不要只看导入成功。转换只能改写格式,不能修复过期账户、失联服务器或内核尚未支持的协议特性。

更新内核或配置前,怎样保留可回退状态?

先导出当前有效配置,记录客户端设置、监听端口、内核信息和是否启用了服务模式,并保留必要的覆写文件。备份中可能包含订阅与认证信息,应放在受控位置,不上传公开仓库。更新时将客户端、内核和订阅模板分开处理,完成一项就验证一次浏览器访问、DNS 与常用应用。出现回归时先恢复上一份配置,再判断是否需要回退程序;涉及服务或驱动的变更应按客户端卸载流程处理,避免旧服务与新程序混用。

TROUBLESHOOTING / 从现象到日志

故障排查

节点测试全部超时,为什么不能直接判定订阅失效?

超时只说明本次测试未在限定时间内完成,原因可能是测试地址不可达、本机时间异常、DNS 失败、出口限制或节点本身不可用。先确认普通直连网络正常,再选一个已知可用节点进行实际网页请求,并查看连接日志中的失败阶段。若所有节点同时失败,优先检查公共依赖,例如 DNS、网络环境与内核配置;若只有个别节点失败,再排查服务器或协议差异。测试连接成功也不保证所有网站、UDP 或长连接可用,应以目标应用的真实请求复测。

显示已连接却打不开网页,最短排查路径是什么?

先关闭代理确认基础网络,再重新启动客户端,检查配置是否加载成功、端口是否监听以及策略组是否选中可用节点。接着使用显式代理请求区分本地入口和系统接管问题,临时切换全局模式区分分流规则问题,最后查看 DNS 解析与 TUN 路由日志。每完成一步都记录结果,不要同时更换端口、DNS 与节点。界面显示已连接通常只代表某个本地状态已启用,并不等于目标请求成功;定位时应跟踪一次具体访问从解析到连接失败的完整过程。

Windows 商店或部分 UWP 应用无法联网,如何检查回环?

先确认浏览器通过本地代理可用,并判断失败应用是否受应用容器的回环限制。部分 UWP 应用不能直接访问本机回环代理,可使用客户端提供的回环豁免工具,仅为需要的应用授权;也可在管理员终端执行 CheckNetIsolation LoopbackExempt -s 查看现有豁免项。不要为了省事批量放开所有应用。如果回环授权后仍失败,继续检查应用使用的网络接口、代理设置和防火墙,必要时单独测试 TUN。并非所有 Windows 商店应用都是 UWP,不能仅凭安装来源下结论。

DNS 检测结果不符合预期,怎样排查泄漏与 fake-ip?

先记录系统 DNS、浏览器安全 DNS、客户端 DNS 和当前接管方式,避免只凭检测站显示的地理位置判断泄漏。使用 fake-ip 时,确认 dns.enable 与 enhanced-mode 生效,并按所用内核的配置要求检查 TUN 下的 DNS 劫持、路由和解析出口;浏览器自行发起的加密 DNS 也需单独核对。清理系统与浏览器 DNS 缓存,重新建立连接后再测。若启用 respect-rules,应同时检查解析规则与代理服务器域名的引导解析,防止解析依赖代理、代理又依赖解析的循环。

退出客户端后断网,或日志提示端口已被占用怎么办?

退出后断网,先检查系统代理是否仍指向已经停止的本地端口,关闭残留代理设置,并确认 TUN 服务、虚拟网卡与路由是否按客户端流程退出。端口占用则应先查明进程身份:Windows 可用 netstat -ano 查看监听及 PID,macOS 或 Linux 可用 lsof -nP -iTCP:7890 -sTCP:LISTEN 检查示例端口。不要直接结束未知系统进程。若修改 mixed-port,必须同步调整系统代理、终端环境变量及局域网设备配置,否则只是把故障从端口冲突换成连接拒绝。

继续查配置与操作步骤

需要按平台重新安装服务或核对导入流程时,使用对应指南;只查询字段含义时,先看名词解释,避免把配置格式问题当作网络问题。