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泄露解决方法
正文完