我对不泄露的定义是被樯域名不走境内 dns 服务商, 以下 2 个 dns 配置下面的 rules ,没泄露了吧
dns:
enable: true
enhanced-mode: fake-ip #redir-host
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*"
- "+.lan"
- "+.local"
nameserver:
- "https://1.0.0.1/dns-query#proxy"
- "https://8.8.8.8/dns-query#proxy"
nameserver-policy:
"geosite:cn":
- '223.5.5.5'
- '119.29.29.29'
或者
dns:
enable: true
enhanced-mode: fake-ip #redir-host
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*"
- "+.lan"
- "+.local"
nameserver:
- '223.5.5.5'
- '119.29.29.29'
fallback:
- 'https://1.0.0.1/dns-query'
- 'https://8.8.8.8/dns-query'
nameserver-policy:
"geosite:!cn":
- "https://1.0.0.1/dns-query#proxy"
- "https://8.8.8.8/dns-query#proxy"
rules:
- ...
- 'GEOIP,CN,DIRECT'
- 'MATCH,机场'
1
ranaanna 168 天前
首先,泄不泄漏不知道,但是 alidns 和 dnspod 都是有 DoH 的,可以和 cloudflare 和 google 一样用 DoH
其次,这么在意 dns 安全的话,可以用 cloudflare, apple 和 fastly 提出的 ODoH ,增加一层代理,全程加密,连 dns 服务器都不知道是你 |
2
redcats 168 天前
DoH 是不是会大大增加延迟?我在 ikuai 上配了 8.8.8.8 的 DoH ,延迟大到离谱
|
3
htfcuddles 168 天前
geosite 不全,这样配访问国内 CDN 服务大概率解析到国外。
|
4
morytyann 168 天前
@htfcuddles 是的,昨天我看到/t/1053566 的时候就测了,正好是楼主第一种方法,确实会出现这样的问题
|
5
vx007 OP 境内网站加不加密我不介意,只想境外被牆域名走境外 DOH 即可
|
7
vx007 OP @htfcuddles 特意下载 geosite 文件查看过,最常用的前 1 万个网站基本包含了,除了小论坛,小盗版资源网站,公司主页等,访问基本没受影响
|
9
frankilla 168 天前
|
11
om2mo 168 天前
不用看 想要完美解决 dns 泄漏不可能 除非你国内域名全部用国外 dns 解析 即使你用了 chinalist 也不可能包含所有中国域名
|
12
mm2x 168 天前
@redcats 爱快也不支持设置 DoH 啊。我现在就是爱快 Chrome 配置了 DoH 。感觉一切正常。你得先看看你 dns.google 解析正常不
|
13
redcats 168 天前
|
14
SenLief 168 天前
其实只要你的梯子足够快,你可以全部都是 proxy
|
15
daisyfloor 168 天前
只有 2 种情况是要进行本地 DNS 解析:
1. 命中了一条 IP 规则,那么要解析域名判断是否命中规则 2. 确定要走直连,最终进行域名解析得到 IP 建立连接 事实上实践中应该尽量避免减少本地 DNS 解析,这不仅可以加快网路的访问速度和效率,而且可以避免泄露,尤其是其中 1 的情况,所以正确的做法是在所有 IP 规则最后都应该加上 no-resolve ,包括 GEOIP,CN,DIRECT 这一条,即: - GEOIP,CN,DIRECT,no-resolve 这种情况下,需要去远端的就去远端进行 DNS 解析了,也就不存在泄露,不需要去远端的(直连)反正你也不在乎泄露不泄露,用阿里云解析得到 ip 后直连即可。 |
16
dford 168 天前
@daisyfloor
- GEOIP,CN,DIRECT,no-resolve 这个规则逻辑很神奇啊,都有 IP 了还解析啥? |
18
daisyfloor 168 天前
这是一条 ip 规则,比如你要访问的一个请求是 https://www.xxx.org/xxxx 如果没有 no-resolve ,那么在没有命中上面的其他规则的的情况下走到这里,就会触发一次本地的 DNS 解析,这里就会泄露。
|
19
daisyfloor 168 天前
@dford 看我前一条 replay 。
|
20
vx007 OP @daisyfloor 我上面的 dns 配置,本地都拿到境外 ip 了,geoip 规则不加 no-resolve 也不会发生 dns 查询,所以不会泄漏
|
21
vx007 OP @vx007 上面我说错了,境外域名遇到 geoip 规则不加 no-resolve 会在本地发起 dns 查询,但因为我 dns 设置了境外域名走境外 doh ,所以依然不会出现 dns 泄漏
|
22
vx007 OP @daisyfloor 如果配置文件不设置 DNS ,clash 默认向操作系统发起 dns 查询,这种情况 geoip 和 ip 规则才需要加 no-resolve 来避免泄漏
|
23
daisyfloor 168 天前
@vx007 你说的这些方法以及规则的写法都用过,并且最开始的认知和判断和你上面给出的说法是一样的。但 实际用下来,类似于"geosite:!cn" 并不能保证某个原本境外域名一定会被判定为境外,因为这只是一个库且需要不断更新的库,别人维护的规则总有更新不及时或者不准确(或者说不符合你要求)的时候, 你的两种写法,第一种的遇到的典型问题:一个实际 loacation 在 cn 的域名,不在 geosite:cn 里,导致查询缓慢或者出错。第二种写法:geosite:!cn (包括还有一种写法叫 geolocation )类似,一个原本就希望在远端 VPS 上进行解析的域名,还要先在本地做一次远端 dns 解析(效率问题),而且还可能因为 dat 文件的原因导致 nameserver-policy 判断不准确导致用阿里云去做 DNS (泄露及准确度问题)。
就这样吧,就说这么多。你觉得没泄露,那就没泄露呗。 |
24
vx007 OP @daisyfloor 你说的第一个 DNS 配置下国内小众网站绕道是意料之中的,可以接受;但你说的第 2 个 DNS 泄漏的问题,经过我用不在 geosite 和规则内的国外小众网站反复抓包测试,并未发现 DNS 泄漏。
虽然理论上看,第 2 个 DNS 的配置下,不在 geosite 和规则内的国外小众网站域名查询会走国内 DNS ,但就像我上面测试的那样,抓包并未发现走国内 DNS 。可能和不同 clash 客户端的有关。 |