我希望 Clash:
我不需要靠 Clash 应对 DNS 污染,能不能直接关闭内置的 DNS ?
dns:
enable: false
另外,在使用 TUN 模式时,是否必须开启 DNS ,为什么?
TUN 模式的参数 dns-hijack
通常被设置为 any:53
,作用是什么?
1
mohumohu 2023-07-13 20:50:26 +08:00
你这需求单独跑一个 DNS 服务更直接清晰,clash 的 DNS 并没有太多自定义的选项。
|
2
Rookie01 2023-07-13 21:29:57 +08:00 1
借楼同问,有没有什么办法让 Hosts 文件的优先级拉到最高,而不让 Clash 等代理工具覆盖 DNS ?
我有几个域名需要修改 Hosts ,总是被覆盖,或者有没有类似的工具之类的…… |
3
journalist OP @mohumohu 你说的很对,我就是用了 mosdns 才问这个问题
|
4
missdeer 2023-07-13 21:58:12 +08:00 via Android
|
5
Kanye 2023-07-13 22:13:20 +08:00
无论怎样都要解析一次才能判断这个域名是否需要代理
|
6
journalist OP @Kanye 基于域名的规则不用请求两次啊 https://blog.skk.moe/post/what-happend-to-dns-in-proxy/
|
7
Kanye 2023-07-13 22:51:38 +08:00
@journalist 对如果直接把域名写进规则里面,是由代理服务器解析和访问的,所以问题不存在
|
8
y1y1 2023-07-13 23:54:50 +08:00
@journalist 那不就好办了,把走 clash 的分流规则再加到 clash 的规则里面?
|
9
SenLief 2023-07-14 00:15:25 +08:00
clash.meta 内核支持 geosite 域名分流 dns ,可以实现这个功能。
|
10
dode 2023-07-14 00:18:44 +08:00
套两个 clash 可以吗
|
11
journalist OP @SenLief 我不想要分流,我用的规则里面没有 IPCIDR ,只有域名。https://www.v2ex.com/t/879229 Clash 默认就是远程解析代理域名的。我想搞明白的是,我开内置 DNS ,把 nameserver 设置为本地 DNS ,和直接把内置 DNS 关了有什么区别。
|
12
mritd 2023-07-14 08:21:10 +08:00 via iPhone
|
13
zbatman 2023-07-14 09:54:56 +08:00 2
[DNS 污染对 Clash ( for Windows )的影响]( https://github.com/Fndroid/clash_for_windows_pkg/wiki/DNS%E6%B1%A1%E6%9F%93%E5%AF%B9Clash%EF%BC%88for-Windows%EF%BC%89%E7%9A%84%E5%BD%B1%E5%93%8D)
[浅谈在代理环境中的 DNS 解析行为]( https://blog.skk.moe/post/what-happend-to-dns-in-proxy/) |
14
rmdbbs 2023-07-14 10:15:59 +08:00 1
遇到需要代理的域名,使用代理服务器请求 DNS 。
---这个核心是要避免本地 DNS 解析,启用 dns 配置里的 fakeip 参数,或者路由规则对所有 ip 类规则加入 no-resolve 参数 遇到直连的域名,使用系统默认或者某个指定的服务器。 ---这个使用 meta 的 DNS 某些配置选项可以实现,看下面的例子 遇到基于 IP 的规则,使用系统默认或者某个指定的服务器。 ---这个使用 meta 的 DNS 某些配置选项可以实现,看下面的例子 我不需要靠 Clash 应对 DNS 污染,能不能直接关闭内置的 DNS ? ---关闭 Clash 的 DNS ,上述需求应该就没法实现了,关闭后,所有的请求都走 system 的 dns ,且无法配置策略 clash.meta 的配置例子,供参考: dns: enable: true listen: 0.0.0.0:53 default-nameserver: - 223.5.5.5 nameserver: - tls://8.8.4.4 - tls://1.1.1.1 nameserver-policy: "geosite:cn,private": - https://doh.pub/dns-query - https://dns.alidns.com/dns-query 看你说的你的规则里没有 IPCIDR ,只有域名,那就意味着,只有两种情况 1 ,交给代理的域名,默认都会去代理上进行 dns 解析,这个不需要设置 2 ,直连的域名,由你的配置文件决定,配置文件设置的 dns 策略,那就由规则决定(如上例子),如果开启 dns 开关,那就交给系统 上面的设置之后,在处理你那些要直连的域名的时候就会进入这个逻辑: 1 ,看看域名是不是 cn 或者 private 的,如果是,交给 dns.alidns.com 和 doh.pub 解析; 2 ,如果不是,那么交给 tls://8.8.4.4 和 tls://1.1.1.1 解析 3 ,解析好了后,用得到的 ip 直连出去。 结束 简单将就是你关了内置 DNS 开关,所有的请求都到了 system 的 dns ,就做不到“按需解析” , |
16
journalist OP @rmdbbs 实际上我说的需求可能说复杂了,所有没有命中代理域名规则的,都走系统默认 DNS 就可以了,不需要 nameserver-policy ,分流已经由自建 DNS 处理好了。https://github.com/Fndroid/clash_for_windows_pkg/wiki/DNS%E6%B1%A1%E6%9F%93%E5%AF%B9Clash%EF%BC%88for-Windows%EF%BC%89%E7%9A%84%E5%BD%B1%E5%93%8D 根据这篇文章,下面这个配置和关闭内置 DNS ,直接设置系统 DNS 没有什么差别。
dns: enable: true enhanced-mode: fake-ip nameserver: - "自建 DNS" |
17
SenLief 2023-07-14 16:00:05 +08:00 via iPhone
@journalist 你的想法错了,你是想 clash 只做代理吧?然后利用 上游 dns 分流。这个是可以的,但是有个问题就是上游 dns 服务器需要代理才能解析 1.1.1.1 这类的 dns 服务,所以又在套娃了。
|
18
journalist OP @SenLief 这是可以避免的,在另一个实例专门代理这个 DNS 。
|
19
x308989414q 2023-08-16 10:24:56 +08:00
@rmdbbs 你好,想请教一下。
dns: enable: true enhanced-mode: fake-ip nameserver: - https://dns.alidns.com/dns-query fallback: - https://1.1.1.1/dns-query - https://dns.google/dns-query 上面的配置 clash tun 模式下,处理那些直连的域名的逻辑是不是如下? 1 ,dns 并发请求 nameserver 、fallback ,取 nameserver 中返回的最快的 ip ,判断这个 ip 是不是中国的, 如果是,直连 2 ,如果不是,那么取 fallback 中最快的 ip ,直连。 |
20
journalist OP |