Clash分流规则no-resolve是什么?

no-resolve规则介绍

“no-resolve”是 Clash 分流规则中的一个配置,用于告诉 Clash 是否需解析(Resolve)DNS。

如果设置 “no-resolve” 为 true,Clash 就不会对该规则进行 DNS 解析,而是直接将其转发给代理服务器进行处理。这在某些情况下可以提高速度和效率,例如,当代理服务器的 DNS 解析速度比本地快,或者想要绕过本地的 DNS 污染时。

但是,如果 “no-resolve” 设置为 false 或者未设置,Clash 会在本地解析 DNS,然后根据解析结果匹配规则,并将数据包分流到对应的代理或直连。

示例

例如clash当前为rule模式,当我们需要访问youtube.com时,配置了以下分流规则:

    - 'IP-CIDR,220.181.174.34/32,Proxy,no-resolve'
    - 'GEOIP,CN,DIRECT'
    - 'MATCH,Proxy'

当解析到第一条IP-CIDR规则时,由于设置了no-resolve,此时就不会发起youtube.com域名的本地DNS解析。

但是解析到第二条”GEOIP,CN,DIRECT”规则时,由于没有设置no-resolve,这时候便发起了本地DNS解析,此时由于youtube.com域名在墙内时受到DNS污染,所以会解析得到一个错误的境外IP。由于GEOIP过滤不是中国区域的IP,会继续解析下一条规则。(这条可能会存在DNS泄露)

解析到最后一条“MATCH,Proxy”规则时,直接将youtube.com域名在代理节点发起DNS解析,得到youtube真实的IP。

no-resolve规则的作用

主要作用是减少本地DNS解析、避免DNS污染和防止DNS泄露。

关于DNS泄露可参见本站教程:Clash DNS设置和DNS泄露解决方法

正文完