1
devswork 2023-11-08 17:35:14 +08:00 1
家里用 adguardhome 作为去广告和自定义 block ,它的上级为 mosdns 。
mosdns 使用大陆白名单域名,doh 走向 223.5.5.5 和腾讯 1.12.12.12 ,开启乐观缓存。白名单外统一使用 doh 请求 8888 和 1111 ,并且通过代理来请求以保证稳定性和速度。 家里有公网 ip ,adguardhome 开启 doh ,在自己域名下申请免费证书,配置到 adguardhome 。nginx 开启反代,自己想个不是 dns-query 的路径来反代到 adguardhome 上,并且只允许你运营商的 IP 网段 ICDR ,其他直接 deny 。nginx 如果访问不是你自定义的路径,直接 302 到 mi.com 上,伪装成路由器,这样可以防止墙发起主动探测。 |
2
devswork 2023-11-08 17:36:32 +08:00
@devswork 这样做的好处就是无论是你在家里,还是在外头,都是同一个控制源,不需要两头折腾。维护家里的 adguardhome 就够了。所有设备,所有 dns 请求一览无余,想 block 哪个域名就全设备立刻生效。
|
3
devswork 2023-11-08 17:38:59 +08:00
对了,ios 上 quanx 可以配置在家里 wifi 下用一个 dns ,除此之外蜂窝流量和其他 wifi 下走 doh ,无感切换。
|
4
bjzhou1990 2023-11-08 17:41:20 +08:00
Clash 可以实现 DNS 分流啊
|
5
showgood163 2023-11-08 18:36:00 +08:00
自建无污染 DNS server ,注册个域名指向 DNS server
最后用安卓自带安全 dns 设置连上就行 |
6
diskerjtr 2023-11-08 18:38:57 +08:00
天翼云 vps 建一个去污染 dns ,也不会封 53 端口直接用公网 DNS
|
7
RiverMud 2023-11-08 19:02:26 +08:00 via iPhone
“ Stash 会使用 Fake IP 来避免需要代理的请求进行本地 DNS 查询。对于中国用户建议使用国内 DNS ,配置 8.8.8.8 / 1.1.1.1 等国外 DNS 服务没任何意义。”
Stash 作者的说法,谁懂这个说法代表什么意思? |
8
devswork 2023-11-08 19:41:55 +08:00
@RiverMud 因为存在 udp dns 劫持,实际上 dns 响应并不是 8888 1111 给你返回的真正的解析结果
|
9
JiaNa OP |
10
rrfeng 2023-11-08 19:59:39 +08:00 via Android
@RiverMud
因为出梯子之后远端还是会查询真正要连的地址。所以要爬梯的域名,在本地解析没有任何意义。 |
11
JiaNa OP 多人提到自建 DNS ,有没有人(比如机场主)提供无污染 DNS 服务的?缺点是 DNS 服务商能看到你的 DNS 查询记录,而不是运营商了,但这对于使用机场翻墙的人差别不大。
|
12
Merrkry 2023-11-08 20:02:25 +08:00 via Android
clash 用 nameserver-policy 分流国内域名到国内 dns ,设置 nameserver 为境外 dns 并且走代理访问
|
13
devswork 2023-11-08 20:09:59 +08:00
@JiaNa #11 看这个 https://apad.pro/dns-doh/
|
15
billlee 2023-11-08 20:14:14 +08:00
没用过 clash, 但我用过的其他客户端都可以按分流规则分流 DNS
|
16
JiaNa OP @Merrkry 只有 Clash Meta 才有 nameserver-policy ?
查到的:默认用国外 DNS ,指定国内或特殊服务用国内 DNS ``` default-nameserver: - https://223.5.5.5/dns-query - https://1.12.12.12/dns-query nameserver: - tls://dns.google - https://cloudflare-dns.com/dns-query proxy-server-nameserver: - https://dns.alidns.com/dns-query - https://doh.pub/dns-query nameserver-policy: 'geosite:microsoft@cn,apple-cn,google-cn,category-games@cn': [https://dns.alidns.com/dns-query, https://doh.pub/dns-query] 'geosite:cn,private': [https://dns.alidns.com/dns-query, https://doh.pub/dns-query] ``` https://github.com/DustinWin/clash-tutorials/blob/main/%E6%95%99%E7%A8%8B%E5%90%88%E9%9B%86/%E8%BF%9B%E9%98%B6%E7%AF%87/ShellClash%20%E4%BD%BF%E7%94%A8%20Clash.Meta%20%E5%86%85%E6%A0%B8%E8%BF%9B%E8%A1%8C%20DNS%20%E5%88%86%E6%B5%81%E6%95%99%E7%A8%8B%20geox%20%E6%96%B9%E6%A1%88.md#2-dns-%E6%A8%A1%E5%BC%8F%E4%B8%BA-redir-host |
17
JiaNa OP @devswork 这个还是要自己先分流,而不是 DNS 服务器做分流。
“DNS 客户端只需做简单分流,将无污染的常见域名使用运营商或大厂的公共 DNS 解析,其余域名调用这个 API/DoH 处理分流” |
18
Merrkry 2023-11-08 20:41:37 +08:00
@JiaNa
我是这么写的,匹配到 nameserver-policy 就走阿里 dns ,否则就通过代理(`#<策略组>`)走谷歌 / cf 的 dns 。 fcm 和 微软之类的走直连个人觉得没什么必要,时不时抽风,一并代理了省事。 ``` dns: enable: true prefer-h3: true listen: "0.0.0.0:1053" ipv6: true enhanced-mode: fake-ip fake-ip-range: 28.0.0.1/8 fake-ip-filter: - "*" - "+.lan" - "+.local" nameserver-policy: "geosite:cn, private": - "https://223.5.5.5/dns-query" - "https://223.6.6.6/dns-query" nameserver: - "https://1.0.0.1/dns-query#DNS" - "https://8.8.4.4/dns-query#DNS" proxy-server-nameserver: - "https://223.6.6.6/dns-query" ``` |
19
showgood163 2023-11-08 21:25:49 +08:00
|
20
xpn282 2023-11-08 22:23:13 +08:00
路由端:
如果平时是使用 OpenClash 的话,想 dns 分流,其实不需要自借助其他 dns 工具的。 OpenClash 用 Meta 内核,nameserver-policy 组用 geosite 类别进行国内域名分流,设置国内 dns 。nameserver 组用国外 dns ,这样就实现了 dns 分流。 同时还可以用把国外 dns 用策略组进行代理解析(具体见 Meta 文档),这样代理 dns 解析后,那些所谓的 dns 泄漏测试都可以全过。 移动端: 可以用小火箭进行国内外 dns 分流的,配置文件用纯文本编辑里,设置:dns-direct-system = true ,这样国内域名会用系统 dns 解析。然后配置文件的 dns 填国外的 dns 。这样就实现国内用系统 dns 解析,国外会使用国外的 dns 解析。 |
21
malagebidi 2023-11-08 22:27:35 +08:00
@JiaNa 配置差不多是这样,clash meta 可以实现无污染。
|
23
xpn282 2023-11-08 22:40:14 +08:00
@RiverMud
小火箭的配置文件,按住配置文件不放,弹出菜单,选择“纯文本编辑”,找到 dns-direct-system ,如果没有这项,那就直接添加即可,dns-direct-system = true |
24
xpn282 2023-11-08 22:46:20 +08:00
@malagebidi 21#
对啊,clash Meta 就可以实现 dns 国内外分流、代理 dns 解析无污染。Meta=翻墙+dns 服务器。不需要再搞其他的 dns 工具了 |
25
win11 2023-11-08 22:48:50 +08:00 via Android
|
26
RiverMud 2023-11-08 22:49:40 +08:00 via iPhone
@xpn282 老哥,这部分我明白,我知道怎么改的。
我的理解是,选了 true 不就是所有的请求就全部到 system 了,完全不去找配置文件了吗。没找到小火箭文档,所以你说的选了 true 国内请求到 system ,国外情况到配置文件 dns 这部分是怎么实现的没太理解。 |
27
xpn282 2023-11-08 22:59:24 +08:00
@RiverMud
就是说小火箭的 dns 你填国外 dns ,然后修改 dns-direct-system = true 结果是: 国内直连域名走 system ,比如蜂窝环境下,system 就是运营商的 dns 。 国外会走你配置的国外 dns ,你可以打开 dns 记录日志看一下 至于为什么这样能实现,那是开发者问题,我也不懂。。。反正就是这样实现的。。。。。。。 |
29
xpn282 2023-11-08 23:09:20 +08:00
@RiverMud 这个直连域名,小火箭到底是根据什么判断的,我也不了解,或许是根据你分流规则( direct )来判断?或许是小火箭其实也内置了一个大陆白名单这样的文件?
你可以打开 dns 日志来观察一下判断是否正确。。。。。。 |
30
popzuk 2023-11-08 23:37:02 +08:00
iOS 主流 surge 、shadowrocket 、loon 、stash 、Qx 的 dns 分流都不大行,不支持规则集,一个一个域名写入 dns 分流不现实。如果用 fakeip ,不如直接敏感域名规则集强制远程解析就是了,只不过未知域名还是需要本地解析一次再通过 geoip 来判断。
shadowrocket 时不时有版本会发生加密 dns 经常失败回落到系统 dns (现在可以自定回落使用的 dns ,稍微缓解了这个问题)。几个月前修复了 dns 问题,我就停在这个版本,后面看别人说好像又有遇到这个问题。 只有 clash meta 和 sing-box 可以 dns 按规则集分流,可能 ray 也支持吧。 |
32
RiverMud 2023-11-09 00:55:27 +08:00 via iPhone
@xpn282 改成 true 试了半天,你的猜想应该是正确的。
黑名单模式下,直连走本地 DNS ,代理不知道走什么,DNS 日志里完全看不到,whoer 看 DNS 是机场服务器 IP 。 白名单模式下,直连走的都是本地 DNS ,代理走的都是配置文件设定的 8888 ,DNS 里都能看到,whoer 看 DNS 的地址都是谷歌 ASN 的 IP 。 不知道为什么黑名单和白名单为什么会有这种差别,严格来说除了 FINAL 其他代码也没什么本质上的区别。 配置文件里写国外的 DoT 、DoH ,不管哪家,都完全没有作用,写阿里云和腾讯云的 DoT 、DoH 有用。这又让我怀疑 DNS 日志里写的 8888 是不是真的 8888 。 @popzuk 最新版本的小火箭,刚试了很久,国外 dot doh 几乎不可用,国内 dot doh 可用,这个就是你说的版本问题吧? @popzuk 老哥了解 dns-direct-system 这个参数吗?我写成 ture 后试了很久,在 DNS 日志里看,的确所有代理请求都去了配置文件里写的 8888 或者 1111 ,就是不知道这个 8888 或者 1111 是不是真的 8888 或者 1111 。 |
33
xpn282 2023-11-09 01:38:16 +08:00
@RiverMud
我 rule 分流规则一般是国内直连,国外全部代理。 我以前观察小火箭的 dns 分流的时候,用也发现了一些问题,比如说, 1 ,有时候看不到被墙的域名的 dns 解析记录,有时候又能看到。不知道是不是 fake-ip 的原因,小火箭没记录被墙的 dns 解析记录。。。。但是没被墙的国外域名基本都能看到 dns 记录。 2 ,有时候很明显的国外域名竟然是 system 来解析(备用 dns 并没有填写“system”),有时候淘宝的域名却被国外 dns 解析。。。 dns 这个东西,很懵逼的,无法理解。有时候我就怀疑,其实根本就不用过多的注意 dns 这个东西,dns 直接 system 完事,这些代理 app 都是 fake-ip 模式,fake IP 模式对被墙的域名不进行本地解析,算是对敏感域名的 dns 解析进行了隐私保护吗?如果算是保护了,那其他没被墙的域名的 dns 解析记录泄漏是否显得那么重要?搞不懂。。。。。 |
34
RiverMud 2023-11-09 01:43:33 +08:00 via iPhone
@xpn282 你说的第 1 点我刚发现了,奇怪的是黑名单模式下,DNS 日志里只能看到直连本地 DNS 的解析记录,白名单模式下所有记录都能看到,我这边看还都挺正常,该本地的本地,该走配置文件的走配置文件。
反正现在对我来说是行了,就是小火箭没有文档,查不到没个命令具体的含义有点着急。 |
35
datocp 2023-11-09 07:00:38 +08:00 via Android
目前找到的 socks5 最好的是 andproxy ,一个根据 app 进行分流的软件。安卓平台,浏览器翻墙,微信不翻。N 年前就搞不定中外路由表。。。
|
36
xwybss 2023-11-09 09:01:59 +08:00 via Android
adguardhome for magisk ,里面导入一下分流规则就 ok
|
37
coffeesun 2023-11-09 09:54:21 +08:00 via Android
我说下安卓的,用的 shelter ,国产软件全装进 workprofile 去,外面的 user profile 装国外软件,clash 全局代理,这样国内外分开。
|
38
dode 2023-11-09 12:20:06 +08:00
搞个 vpn 连回家
|
39
yyysuo 2023-11-09 14:18:36 +08:00
家里开 wireguard ,全局回家,也不光是 dns 了。
|
40
luistrong 146 天前
@xpn282 #33
@RiverMud #34 请教两位老哥, 我对 dns 一直没理解, 问下我在小火箭里面把 DNS 覆写改成阿里的 223.5.5.5 (还有人改成 tls://223.5.5.5, 不知有何区别), 然后去 DNS 日志里看到的比如下面 3 个: 1. extshort.weixin.qq.com A-117.89.176.31-16ms 192.168.118.161:53 前面旗是中国 2. blacklist.tampermonkey.net A-81.169.152.96-23ms 192.168.118.161:53 前面旗是德国 3. filters.adtidy.org A-143.244.51.249-21ms 192.168.118.161:53 前面旗是美国 可以看到 192.168.118.161:53 是不变的, 这个 DNS 是我本机的 DNS 吗? 其中中间的 DNS 是变化的, 这是解析后的 DNS 吗? 还有阿里的 223.5.5.5 没在 DNS 日志里任何地方找到, 那覆写成功了吗? 还有每条 DNS 前面的"A"是什么意思呢? 谢谢! 小白对 DNS 的疑问有点多 |