网上看了很多对 dns 泄露的讨论,为了防止 dns 泄露,很多人对 dns 模块进行了复杂的自定义设置。 但我都是直接把配置文件中 dns 模块删除!只需在配置文件设置国内常用域名的白名单走直连,其他所有域名用 match 兜底走代理,ipcidr 和 geoip 规则全设置 no-resolve ,就不会有 dns 泄露。
国内常用网站走国内 dns ,其他网站都在代理服务器端远程解析,这样既安全又不用配置 dns ,为什么不用?
这样看来,那么多人都在追求的 dns 精细设置是否多此一举,有什么意义?
1
xclrr 138 天前 via Android
如果不设置,isp 的 dns 服务器会知道你访问了什么网站,校园网什么的对这种大都有审计的
|
3
xclrr 138 天前 via Android
@vx007 clash 的 dns 逻辑有点奇怪,我记得不设置 dns 是会本地先解析的,你说的设置 no resolve 能否只让远端解析我可能没有做过什么测试,最近都在用 singbox ,singbox 的解析逻辑比较清晰。我的理解是,精细设置 dns 可以让你访问网站吃到离代理服务器近的 cdn(如果你的设置能做到只让远端解析,这一点当我没说),还有就是校园网环境下让一些内网网址走校园网 dns
|
4
hefish 138 天前
各人喜欢。
我家里的 dns 是 DoH 到 dnspod 去解析的,理论上运营商要看的话也比较麻烦。 |
5
K8dcnPEZ6V8b8Z6 138 天前
@vx007 需要没有 IP 类规则(或者全部都 no-resolve )才可以做到不解析
|
7
vx007 OP @K8dcnPEZ6V8b8Z6 是的,ip 规则用到的机会很少
|
8
itisqiang 138 天前
圈 X: no-system
|
9
xxxxi 138 天前
你用的是 clash 还是 singbox 啊, “其他所有域名用 match 兜底走代理”,
问一下:你把 DNS 模块都删了,那么其他网站是怎么在远端解析的? |
13
anonymous64 138 天前 via Android
有人觉得白名单走运营商明文 dns 就算泄露了,你觉得不算那也没办法
|
14
maxus 138 天前
- GEOIP,CN,DIRECT
- GEOSITE,cn,DIRECT - IP-ASN,132203,DIRECT # 微信 - IP-ASN,6185,DIRECT # Apple 中国 - IP-ASN,714,DIRECT # Apple 中国 - IP-ASN,13414,推特策略,no-resolve,no-track # Twitter - IP-ASN,35995,推特策略,no-resolve,no-track # Twitter - IP-ASN,63179,推特策略,no-resolve,no-track # Twitter |
15
maxus 138 天前
有 GEOIP,CN,和 GEOSITE,cn 两个规则直连,基本可以囊括所有大陆常用网站,再不放心就添加中国所有 IP-ASN 使用直连,以及 DOMAIN-KEYWORD,.cn,DIRECT
cnn 和 cnbc 另外添加策略 最后兜底走代理,MATCH,proxy |
18
xxxxi 138 天前
贴一下你的配置看看
|
20
maxus 138 天前
如果设置 IP 段为 “no-resolve” ,Clash 就不会对该规则进行 DNS 解析,而是直接将其交给海外代理服务器的 DNS 进行解析。国内的交给国外解析,速度变慢
|
21
jackOff 138 天前
所有复杂操作都是为了实现一个根据域名或者 ip 进行不同的 dns 域名服务器的解析请求这个操作,所以如果公网里存在一个 dns 服务器具备这种能力,你的代理软件的确不用进行任何复杂设置,挂一下代理配置直接用这个特殊的 dns 服务器就可以解决 dns 泄漏问题,那么在中国境内有没有这种特殊的 dns 服务器呢?
|
22
maxus 138 天前
|
23
mintongcn 138 天前 via iPhone
常用网站不好定义
|
24
maxus 138 天前
😀 为了防止泄漏,clash DNS 引入 fakeip 模式,在此模式下,Clash 会为每个请求生成一个假的、不存在的 IP 地址( ip 段 198.18.0.1/16 ) ,然后在内部解析这个 IP 到正确的域名。这样,外部的网络监控者只能看到假的 IP 地址,而无法通过 DNS 请求来了解你的网络活动。配置是这样的
dns: enable: true ipv6: true enhanced-mode: fake-ip listen: 0.0.0.0:53 fake-ip-range: 198.18.0.1/16 default-nameserver: - 119.29.29.29 nameserver: - 119.29.29.29 - 182.254.116.116 |
25
maxus 138 天前
使用 fake ip 模式后,- GEOIP,CN,DIRECT 不要加 no-resolve ,直接交给内部解析,外部看到的是假的 fake ip 地址,也就不存在 dns 泄漏。
国外的加上 no-resolve ,直接交给海外 dns 解析,加快速度。 |
26
fanxasy 138 天前
surge 默认就是这种策略
|
27
vx007 OP @maxus 白名单中的直连域名自动用系统默认 dns 就行,不需额外设置 dns 。 国内 IP 段设置 “no-resolve” 后,只要白名单包括了对应的国内域名,国内域名只会在本地解析,并不会交国外解析。
|
31
vx007 OP @maxus 你提到“使用 fake ip 模式后,- GEOIP,CN,DIRECT 不要加 no-resolve ,直接交给内部解析,外部看到的是假的 fake ip 地址,也就不存在 dns 泄漏。”,这不对啊,只要 GEOIP,CN,DIRECT 没加 no-resolve ,你设置了 fakeip 照样泄露 dns 。仅靠 fakeip 根本防止不了 dns 泄露
|
32
SuperArilo 138 天前
|
33
js9528 138 天前 via iPhone
@SuperArilo 有没有详细教程参考下
|
34
Love4Taylor 138 天前
Without DNS leaks, but slower (1.9.0-alpha.2+)
``` { "dns": { "servers": [ { "tag": "google", "address": "tls://8.8.8.8" }, { "tag": "local", "address": "https://223.5.5.5/dns-query", "detour": "direct" } ], "rules": [ { "outbound": "any", "server": "local" }, { "clash_mode": "Direct", "server": "local" }, { "clash_mode": "Global", "server": "google" }, { "rule_set": "geosite-geolocation-cn", "server": "local" }, { "type": "logical", "mode": "and", "rules": [ { "rule_set": "geosite-geolocation-!cn", "invert": true }, { "rule_set": "geoip-cn" } ], "server": "google", "client_subnet": "114.114.114.114/24" // Any China client IP address } ] }, "route": { "rule_set": [ { "type": "remote", "tag": "geosite-geolocation-cn", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-cn.srs" }, { "type": "remote", "tag": "geosite-geolocation-!cn", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs" }, { "type": "remote", "tag": "geoip-cn", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs" } ] }, "experimental": { "cache_file": { "enabled": true, "store_rdrc": true }, "clash_api": { "default_mode": "Enhanced" } } } ``` https://sing-box.sagernet.org/manual/proxy/client/#traffic-bypass-usage-for-chinese-users |
35
Love4Taylor 138 天前
@maxus fake-ip 的出现不是防泄漏吧,是 redir-host 的映射或者反查的问题(当然后来可以通过 sniff 解决),现在普遍讨论的 DNS “泄漏” 只是如果有个网站用来检查用户 DNS 解析的域名没有命中规则就不会走远程解析从而通过国内 DNS 解析就造成了所谓 “泄漏”。以及 “外部的网络监控者” 是啥,你用到 fake-ip 要么本机撑死了在局域网内。
|
37
Jacquesx 138 天前
@vx007 域名的 DNS 请求并没有通过加密发送给代理服务器远程解析,clash 处理 UDP 的协议要发起 DNS 请求(软件设计问题)曾经的讨论: https://www.v2ex.com/t/957464
(而 v2ray 系列的可以开启节点嗅探进行远程 DNS 解析),除非使用 DoT 或者 DoH ,否则 1 、clash 的 redirhost 模式(目前已弃用)会发起 DNS 请求来进行分流 2 、现在的 clash 内核使用的是 fake-ip 模式会因为 Windows 的多宿主 DNS 也会发起 DNS 请求 如果想要使用 clash 代理又不进行 曾经的讨论: https://cn.v2ex.com/t/829447 https://global.v2ex.com/t/1034325 |
38
Jacquesx 138 天前
如果想要使用 clash 代理又不产生 DNS 泄露,最好的办法就是本地配置 DoH/DoT ,即便 clash 代理软件设置了 no-resolve ,chrome 使用 QUIC 协议的流量还是会使 clash 发起 DNS 请求,需要在 chrome 里面配置安全的 DNS (开启 DoH/DoT )
|
39
jinqzzz 138 天前
国内域名并不完整,没有在规则列表内的都会走代理查询,geoip,cn,direct 会失效
|
40
vx007 OP @Jacquesx 我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都不会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
|
41
vx007 OP @vx007 更正:我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
|
42
adrianzhang 138 天前
@jackOff 自己内网做一个就行。
|
43
vx007 OP @jinqzzz 更正:我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
|
44
vx007 OP @jinqzzz 多打了一个不字,更正:我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
|
47
jinqzzz 138 天前
@vx007 你没解决问题,如何让 geoip,cn,direct 生效?
你用网上的域名列表,那列表里没有的怎么办呢?实际上别人也是慢慢收集的国内域名,并不是很全,我已经贡献了六七千个没有在 geosite,cn 里边的 |
48
adrianzhang 138 天前
你提出的删除 dns 模块,那么怎么按照域名分流不同规则呢?这件事的正确做法是内网做一个 dns 服务器,dns 模块的上游 dns 都设置成这个 dns(不管国内国外),然后,在这个内网 dns 上下功夫,解决分流解析的问题。国内的直接就 foeward isp 的 dns ,一般都在猫上,国外直接 doh 。或者就建成一个缓存 dns ,从根域开始解析,至于 udp 怎么出去,都会吧?
|
49
leconio 138 天前 via iPhone
udp53 不加密就有可能泄露,不管代理还是直连。没代理的话用 doh(dns over https)可以解决一些。代理软件可以用 fakeip ( clash ),fakedns(xray)等缓解。
|
50
vx007 OP @jinqzzz 只需要最常用的几百的国内网站直连就可以满足 99%的场景了,不匹配直连规则而被迫走代理的国内小众网站可以安装 swithysmega 之类的扩展来放行,不麻烦
|
51
vx007 OP @adrianzhang 只需要最常用的几百的国内网站直连就可以满足 99%的场景了,不匹配直连规则而被迫走代理的国内小众网站可以安装 swithysmega 之类的扩展来放行,不麻烦
|
53
yyysuo 137 天前
dns 分流并不是为了不泄露,而是为了更好的体验,分流越精确,体验越好,当然不泄露也是很好的。
|
54
v2guy 137 天前
简单来说,楼主这种模式就是"绕过大陆"路由模式,也就是所谓的白名单机制。
本来就是这么简单即可杜绝 Dns 泄露了。 |
58
Jacquesx 137 天前 via iPhone
@vx007 我要是没理解错的话,我记得 clash DNS 解析那部分的模块是给 TUN 模式用的,不开 TUN 模式本身就没有启用 clash 内核作 DNS 解析,不知道你说的 DNS 泄漏指的是什么情况下的泄漏,如果是开透明代理/系统代理,那 socks5 是会代理 UDP 请求的,UDP 流量肯定是从 clash 发出去的呀,clash premium 内核处理 UDP 数据会发起一次 DNS 请求(具体来源忘了在哪看到的),而且 clash 应该不能把 DNS 请求交给远程服务器解析吧?(没有这个功能),好久没有关注 clash 内核的更新了 lol
|
59
Jacquesx 137 天前 via iPhone
@vx007 记错啦,刚看了一下确实 dns 模块可以删除,dns 请求直接被节点加密发到远程去解析了,理论上说抓包看不到明文国外 dns 请求,应该就算没泄漏?
|
60
hazy 137 天前 via iPhone
我认为这个问题首先要讨论的应该是 DNS 泄漏的焦虑是怎么流行起来的,能避免自然是好事,有部分泄漏也不见得有多大问题,信不过运营商可以用公共 DNS ;而且代理中 DNS 的作用本来就是为了更准确的分流,要更好的体验自然需要更精确的 DNS 配置,要是担心 DNS 隐私问题那更简单了,自建前置 DNS 一举两得。
|
61
adrianzhang 137 天前
@vx007 所以你喷了半天,还是不理解为什么要 DNS 分流。请问一个代理支持大带宽但不支持 chatgpt ,一个支持 chatgpt 不支持 Netflix 。你访问这俩怎么做?手工切代理?
|
62
ziseyinzi 137 天前
同好奇 dns 泄漏的焦虑是怎么流行起来的,除了 ipleak 跑分不好看有实际影响吗
|
63
weeei 137 天前
@maxus DOMAIN-KEYWORD,.cn,DIRECT 这个写的好像不准确,访问 cnbeta.com.tw 也会匹配到了。
|
64
everfly 137 天前 via iPhone
基于域名的规则是不可靠的,因为客户端可能内置了加密 dns ,分流基于 IP 规则才是合理的。
|
65
samersions 137 天前
@ziseyinzi 不同人对 DNS 泄漏的定义不太一样,网上不良林那种是很苛刻的防 DNS 泄漏。其实一般来说只需要防止部分黑名单域名(如 Google 等)泄漏给运营商就行了。
|
66
frankilla 137 天前
@js9528 #33 https://github.com/Aethersailor/Custom_OpenClash_Rules/wiki/OpenClash-%E8%AE%BE%E7%BD%AE%E6%95%99%E7%A8%8B 这是 fakeip 的,我当前用的,之前不泄露现在泄露了,按照帖子一步步设置也不知道问题所在,如果大佬发现问题可否告知。谢谢。
|
67
chrisl73 137 天前
@Love4Taylor 最后一个规则没看懂,dns 规则里面匹配 cn ip ? dns 不就是用来解析 ip 的吗,有 ip 了就用不着 dns 了吧
|
71
Serino 137 天前
dns:
cache-algorithm: arc enable: true prefer-h3: true listen: 0.0.0.0:7874 ipv6: false enhanced-mode: redir-host nameserver: - "https://223.5.5.5/dns-query" - "https://1.12.12.12/dns-query" nameserver-policy: "geosite:!cn": - "https://1.0.0.1/dns-query#proxy" - "https://8.8.8.8/dns-query#proxy" geodata-mode: true geox-url: geoip: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip-lite.dat" geosite: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat" geo-auto-update: true geo-update-interval: 24 rules: [省略一些配置] - 'GEOSITE,geolocation-!cn,Proxy' - 'DOMAIN-SUFFIX,cn,DIRECT' - 'DOMAIN-KEYWORD,-cn,DIRECT' - 'GEOSITE,cn,DIRECT' - 'GEOIP,CN,DIRECT' - 'MATCH,Final' 不用那么麻烦。类似这样设置,就不漏了。 小众网站也会根据 IP 分流,国内 IP 走直连,国外 IP 走代理。 |
72
radeon019 137 天前 via iPhone
有大神可以出个 passwall2 的具体设置么?
|
73
MrKrabs 136 天前
你这白名单不是地雷?
|
74
hongyichao 136 天前
怎么算 DNS 泄漏啊,运营商知道了你的 DNS 请求吗
|
75
lhwj1988 136 天前 via iPhone
@SuperArilo 拿这个网站测试下呢 https://browserleaks.com/dns
|
76
qbqbqbqb 136 天前
不用 clash 解千愁
|
78
Serino 135 天前
@vx00777 我从 PW2 转 Clash 都不到半个月,仔细阅读了不少官方文档,不过没怎么仔细研究覆写设置能否完全覆盖订阅的 rules
我是手动把鸡场配置文件的节点信息提出来,参考别人的配置手搓整个配置文件。还另外把某个地区的节点弄成一组,用 type: load-balance 这个负载均衡的分组就可以当成一个节点来使用,已测试可以网速可以叠加 |
79
jinqzzz 135 天前
笑死我了,还 “这个可行”,OP 喷了半天实际上根本不知道 clash 怎么用,已 block
|
82
grg 130 天前 via Android
@xclrr 老哥 singbox 有啥办法让 dns 查询让节点去负责吗,不然我感觉每个规则都单独写个 dns sever 指定对应策略组出站写着太麻烦了
|
85
adob51 17 天前
OP ,像你这样 dns 不设置 doh 或者 doq ,直接使用公共 dns ,那机场的节点无法 ping 通是正常使用,这个问题如何解决呢?
|