前言

Clash是个优秀的项目,但其高度配置化的功能对新手来说还是稍显复杂,所以如果不是有故障,一般我们就界面上点几下能用就好。

有时候为了干净网络,会在Clash配置中内置DNS功能,但这个功能在某些时候却直接断了,导致基本功能未实现。

现象

之前用的好好的,在某个敏感时期,节点服务器能更新或者更新订阅时候就直接超时了,即便更新下来节点全部显示超时或者失败,同一个服务器,别的客户端如 netch 等却用得好好的,此时Clash软件里手动强连也无法使用。

该现象影响包含所有Clash项目,包括 ClashXClash for Android

解决

排除其他问题

先确定不是其他问题导致,如:节点服务器真的可以用,系统时间与服务器上一致,一般都是标准北京时间,如果有时差就同步好,可以打开这个网页校对下:http://www.time163.com/

关闭内置DNS

用文本编辑器打开编辑Clash的 yml 配置文件,将 dns 下的 enable 值改为 false ,此处以 Clash for Windows 为例,macOS上的 ClashX 配置格式也一样的,入口自己找。

1
2
3
4
5
6
7
8
9
10
11
12
13
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
external-controller: '127.0.0.1:9090'
dns:
enable: false //这个值`true` 改为 `false`
ipv6: false
default-nameserver: [223.5.5.5, 119.29.29.29]
enhanced-mode: redir-host
fake-ip-range: 198.18.0.1/16
use-hosts: true

如果提示 yml 文件未关联,就自己去找到配置文件用文本编辑器打开就行,Clash for Windows 的配置一般在 %USERPROFILE%\.config\clash\profiles 下面,复制该路径直接粘贴打资源管理器地址栏可直达。

%USERPROFILE% 是系统变量,表示用户目录,如登录的用户名为 xyz ,那么这个路径一般就表示 C:\Users\xyz\

修改完保存,然后再看效果就可以了。如果你用的是机场提供的服务,让机场主修改该默认配置,然后你再客户端更新下订阅应该就可以自动完成了。