受不了你国的魔幻网络了,节点里介绍的 mos-chinadns 我去试过了,不知道为什么没有达到理想的效果,该污染还是污染。simplednscrypt 倒是没有任何问题,但是访问国内网站的速度就极大地降低了。clash 听说也能做一个 DoH 客户端,但是我不知道该怎么做…… 仅限在 win 上,有什么抗污染+分流的 dns 方案吗?谢谢
1
Jirajine 2020-08-02 17:05:39 +08:00 via Android 1
两种方案:
1. 所有域名都同时通过 doh 和本地查询,使用其中较快的结果。 优点:不影响速度。缺点:隐私极度不友好,访问违法网站可能被查水表。 2.维护一个已知的 cn 域名列表,列表以外的全部通过 doh 查询。 优点:隐私友好。缺点:部分情况下影响速度或产生错误。 工具:smartdns 或者 dnscrypt-proxy |
2
jousca 2020-08-02 17:11:54 +08:00 1
coredns 这个。
|
3
HaoranLi 2020-08-02 17:18:11 +08:00
说实话 win 上面真没见过完美的解决方案
还是 linux 方便点 自用 dnsmasq+dnsmasq-china-list 做分流 上游用 smartdns/clash 就行 |
4
love 2020-08-02 18:05:17 +08:00 1
你们就靠这个 fq ?如果有梯子的话 dns 污不污又有什么关系呢
|
5
Whalko OP @love 那肯定不是一个东西,虽然现在 clash 这种东西在有一个好规则的情况下几乎可以不关,但是 tiz 并不能很好地替代一个优质的 DNS 。
|
7
wdlth 2020-08-02 18:13:45 +08:00
mos-chinadns 我用着没什么问题,remote 是 DoH
|
8
love 2020-08-02 18:16:44 +08:00
@Whalko 我以前还维护自己的规则,后来发现对于现在的渣外网速度来说几乎没有原生连接速度能比得过我挑的 VPS,所以我用了 china_ip_list 对所有外网连接都直接用代理,这样就很舒服了几乎体验不到墙的存在。在我这种情况下我实在不知道要折腾 DNS 的意义在哪
|
9
Sekai 2020-08-02 18:18:28 +08:00
coredns 可以在 win 上跑,可分流,我都用了好几个月了稳得很,上游 AdGuard 做过滤,全部走加密,美滋滋
|
10
domosekai 2020-08-02 18:19:51 +08:00 via Android
我也纠结过 win 下的 DNS 方案,但是后来发现只要分流配置得当不需要拘泥于干净的 DNS,所以 lz 你到底是在纠结什么?说出来帮你参谋参谋?
|
11
testcaoy7 2020-08-02 18:21:30 +08:00
同推荐 coredns
|
15
Whalko OP @domosekai 主要是 CF 这半年劣化的太多了,真污染的其实没几个。有些套了 CF 的网站我这用运营商默认 dns 直接不给解析了,现在我 hosts 里面有 10 个 1.1.1.1
|
16
miaomiao888 2020-08-02 21:33:05 +08:00 1
AdGuard Home
上游 DNS 服务器填几个国内和国外的 DOH 下面勾上“最快的 IP” |
18
mingmeng 2020-08-02 22:17:14 +08:00 via iPhone
Docket smartdns 镜像 简单好用
|
19
HalloCQ 2020-08-02 23:16:54 +08:00
overture,全平台
|
20
Les1ie 2020-08-02 23:37:27 +08:00 1
国内的 doh dot 的节点可能有审查,优点是延迟比较低,国内一般 50ms 以内,如果客户端在北京的话,那么延迟可能在几 ms 。国外的节点延迟比较高,一般可以到 100ms+。
dot doh 的没有 dns leak 的问题,因此安全性提升了,但是使用体验下降明显。dot 从发起三次握手到获取到 dns 解析结果需要大概 3 个 RTT,而使用传统的 udp 的 dns,只需要一个 RTT 就能获取到解析结果 抓包测试使用 1.0.0.1 的 dot 的结果: ping 1.0.0.1 延迟 60ms 使用 dot 从发起三次握手的第一个包到发送 FIN 包的前一个数据包一共用了 230ms https://i.loli.net/2020/08/02/ICBMvDxrkJPg8Si.png 另外 clash 是支持 dot 和 doh 的,配置方式: https://lancellc.gitbook.io/clash/clash-config-file/dns#example |
21
Rilimu 2020-08-02 23:44:08 +08:00 via Android
同。win 上用 moschinadns 的默认分流配置好几个月了。没发现问题。local remote 都是 dot 。
请求哪个域名被污染了? |
22
Rilimu 2020-08-02 23:47:11 +08:00 via Android
@Les1ie mos-chinadns 把 dot doh 的延时给灭了。连接服用。第一次请求后,和传统 UDP 一块。
|
23
JamesR 2020-08-02 23:47:38 +08:00
路由器上对被污染的域名走 VPN 解析,由于被污染的域名比较少,自己写个通配符匹配就行了。
|
25
m4d3bug 2020-08-02 23:58:13 +08:00 via Android
overtrue
|
26
MrMissBlack 2020-08-03 00:28:37 +08:00 via Android
@love 如果玩 bt 的话对流量消耗太大了
|
27
katana97 2020-08-03 08:43:09 +08:00
在局域网里搭建 AdGuard Home
|
28
domosekai 2020-08-03 09:27:15 +08:00 via Android
@MrMissBlack 不要用 tun,开全局 HTTP 代理,bt 直连就行
|
29
H0u5er 2020-08-03 11:52:39 +08:00
v2ray 支持 DoH,搞了一个旁路由,效果显著,在 DNS 泄漏的测试中获得满分。如果阿里的 dns 开启 DoH 之后,发现某些国内对网站解析得出的是国外的 IP 地址(如斗鱼直播),配置中加上 clientIp 参数即可。
"dns": { "hosts": { "some_local_site.com": "192.168.1.1", "some_local_site.net": "192.168.1.1", "x1.local.com": "192.168.1.252", "x2.local.com": "192.168.1.253", "x3.local.com": "192.168.1.254" }, "servers": [ { "address": "223.5.5.5", "port": 53, "domains": [ "geosite:cn", "h0u5er.com", "ntp.org" ], "expectIPs": [ "geoip:cn" ] }, { "address": "https://1.1.1.1/dns-query", "port": 53, "domains": [ "geosite:geolocation-!cn", "geosite:speedtest" ] }, "1.1.1.1", "localhost" ] }, 参考资料: https://medium.com/@TachyonDevel/%E6%BC%AB%E8%B0%88%E5%90%84%E7%A7%8D%E9%BB%91%E7%A7%91%E6%8A%80%E5%BC%8F-dns-%E6%8A%80%E6%9C%AF%E5%9C%A8%E4%BB%A3%E7%90%86%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8-62c50e58cbd0 |
30
MrMissBlack 2020-08-03 12:12:01 +08:00 via Android
@domosekai 有些场景不用透明代理不行,比如安卓 tv,或者是一些不支持代理的软件。当然我自己用是没问题的,用 proxifier 就行了,但是家里其他人要用就麻烦了。
我现在想到的最好办法是单独将 transmission 指定一个不经过代理的出口,不过具体实现还没想好。 |
31
domosekai 2020-08-03 12:23:35 +08:00
@MrMissBlack 我以为你是 win,如果是 router 上分流那么限制端口就好了,我自己是只转发 1024 以下到代理,高位端口的应用很少的,个别开就行了,比如安卓的 5228
|
32
Whalko OP @Rilimu #21 试试看 https share 点 dmhy 点 org 一个很典型的被污染的网址
|
34
Whalko OP @Rilimu #21 受到楼上提醒,我用 Wireshark 抓个包看看好了,看看具体问题出在哪里,是不是因为我根本没配置好…
|
35
MrMissBlack 2020-08-03 13:42:37 +08:00 via Android
@domosekai 您好,请教一下如果碰上 ftp 这种被动端口,会不会不好处理呢
|
36
byzf 2020-08-03 13:52:34 +08:00
dnscrypt, 我在 arch linux 的包推荐里找到的, 然后发现 windows 上也有, 亲测极其干净.(我这么说出来是不是以后就不干净了
虽然不知道为什么, dnspod(腾讯的) 用 doh, 貌似还是返回的被污染的结果. |
38
MrMissBlack 2020-08-03 14:01:12 +08:00 via Android
@domosekai 另外我还担心一件事。有些网站开启了 ddos 防护,如果使用 ip 分流会不会通不过网页验证
|
39
imn1 2020-08-03 14:18:05 +08:00
最最简单当然是利用梯子就行了
简单傻瓜方案是 github 搜一些华人开发的 dns 项目 如果想用大厂的,就装 unbound,github 上面有专为 cn 写的配置 或 stubby,这个是开箱即用的,默认配好了十多个国外 DoT,缺点是慢,没有 cache 如果想自己配,各方面顺畅、方便自己管控,考虑三点 1.分流,国内 udp,国外 DoT/DoH 2.因为要正确,所以肯定比 udp 慢,上 cache,设定 10~24 小时 TTL 缓存 3.支持 edns,避免一些 cdn 总是解析到国外 |
41
domosekai 2020-08-03 15:06:56 +08:00
@MrMissBlack 这年头还有 ftp ! linux 有个 nf_conntrack_ftp 模块,加载后作用是把 PASV 连接标记为 21 端口主连接的 RELATED 连接,跟随主连接有相同的 connmark 。只要你在转发透明代理的时候是跟着 connmark 走的( REDIRECT 一定是这样的,因为走 nat 表,TPROXY 的话一定要用 connmark ),那么 RELATED 连接一定和主连接走同样的路由,不知说清楚了没。还有你说的分流导致通不过验证,要看你怎么分流了,国内外分流自然是不会的。。
|
42
MrMissBlack 2020-08-03 17:48:51 +08:00 via Android
@domosekai 多谢,受教了
|
43
sky96111 2020-08-03 21:03:36 +08:00
@Les1ie 国内 DOH 会被审查是真的吗?我现在是路由器用 adguardhome 取代 dnsmasq,上游是阿里、dnspod 和谷歌的 DOH 。adh 开启了选择最快 IP 地址,所以访问国内网站不会被解析到国外,遇到被污染的无法连接就只会被谷歌 DOH 解析,所以我把 clash 的上游也设置成了 adh 的 dns 。如果会被审查,这样的话产生大量的屏蔽网站查询记录啊...
|
44
nekobest 2020-08-03 21:04:01 +08:00
话说有一点我一直不太明白,就是折腾 DNS 这件事情。大多数被和谐的站并不只是 DNS 污染这一层;应对运营商劫持也显然只需要阿里等公共 DNS ;即便被污染的站的 IP/SNI 都没有被过滤,速度也是很感人的。与其百般折腾,似乎真不如一个 proxy 靠谱?那折腾防污染 DNS 是出于什么目的呢?
|
45
domosekai 2020-08-03 21:53:09 +08:00
@nekobest 我也不明白,我自己吧以前觉得有些网站明明只是 DNS 污染就要挂 tz 显得不够纯粹,所以折腾 DNS 是为了减少对 tz 不必要的使用。我没有用国内外分流,是根据是否被 xx 自动分流的,所以 DNS 就很有用(我外网速度很好),如果是国内外分流的方案我也不懂为什么要折腾 DNS,有可能有些人不喜欢一直挂着 tz,能不用就不用?
|
46
domosekai 2020-08-03 21:58:23 +08:00
@nekobest 我想起来了,还有一种情况,就是这个 dns 的结果是 tz 也要用的,如果采用的是发送 hostname 给代理或者 sniff 的方案,那么 DNS 是无所谓
|
47
Jerami 2020-08-03 22:14:12 +08:00 via Android
你必须升级到 19628 才可以使用 doh
|
48
Rilimu 2020-08-03 22:36:49 +08:00
|
52
Les1ie 2020-08-04 00:22:28 +08:00 1
@sky96111 #43 没有实际的证据,只有猜想。
可能会在不同的途径泄露访问网站的信息: 1. 公司、集团的出口网关、运营商可能获取请求的域名,造成隐私泄露,也可以抢答 DNS 请求 2. 使用的 dns 服务器可能会缓存客户端的 ip 和请求的域名的信息,也可以返回错误的解析结果 doh 和 dot 可以解决网关、运营商收集 DNS 请求和抢答的问题,但是无法解决 DNS 服务器自己存在的问题,我们只能选择信任 DNS 服务器 个人猜测运营商这里泄露 DNS 请求记录是个大头 |
53
jilu171990 2020-08-04 05:33:38 +08:00
为啥不直接改 hosts ?感觉这是一个相当伪的需求。
|
54
Rilimu 2020-08-04 08:42:12 +08:00 via Android
|
55
ragnaroks 2020-08-04 08:42:24 +08:00
我也是被 dns 搞的头疼,后来干脆直接写驱动,劫持三层,如果主机名在指定的列表里,则劫持并转发所有 tcp/udp 到代理
|
56
zimonianhua 2020-08-04 09:04:14 +08:00 via Android
YogaDNS 了解下,感觉还行
|
57
flowfire 2020-08-04 09:14:13 +08:00
chrome 和 firefox 不是都已经支持了 DoT 了吗。
还是说你要全局的= = |
58
Whalko OP @jilu171990 #53 虽然可能确实比较伪,但是改 hosts 略麻烦,我上面也说了,我 hosts 里有 10 条 1111,总不能每次遇到一个上不去的网站我就用多线 ping 工具看看什么情况吧。最烂的时候我 V2EX 都是改 hosts 上的,真的受不了了。然后 DoH/DoT 也有一些好处,一是有些时候 DNS 也会被运营商污染来投广告,虽然现在比较少了,二是一定程度的保护隐私。
@zimonianhua #56 感谢推荐,看了看似乎完美符合我的要求,我会去试试看的。可惜好像不开源 @flowfire 还是全局的好一点……然后我就知道 FF 能用 DoH,chrome 和 ff 的 DoT 在哪里我好像没看到过……我去搜搜看。 |
59
jilu171990 2020-08-04 12:38:39 +08:00
@Whalko 改 hosts 麻烦自己写脚本自动改啊。。。你这个需求的本质就是你因为懒不愿手动改 hosts,也不愿写脚本自动改 hosts,然后就决定花费无数的时间和精力去折腾同样很麻烦而且有大量额外开销同时在可预见的未来注定会撞墙的 dns,同时 dns 在默认情况下是不可能给你最优的解析结果的,如果你想要最优的解析结果的话,最终还得要去 dns 上改 hosts 。
|
60
sky96111 2020-08-04 19:00:24 +08:00
|
61
MakeItGreat 2020-08-22 10:23:51 +08:00 via Android
@H0u5er 您好,能提供一下完整的例子吗?怎么调用这个 DNS?
非常感谢! |
63
buchiluobo 2020-09-18 18:22:33 +08:00
@Whalko mos-chinadns 你去试过了,没有达到理想的效果是什么意思呀?
|
64
buchiluobo 2020-09-18 18:23:31 +08:00
@HaoranLi 可是有些黄网的网址频繁被封,换上干净的 dns 就可以登录了
|
65
Whalko OP @buchiluobo #63 就是失败了,后来其实发现原因是我自己太蠢
“或者手动将网络适配器的 DNS 地址改为的 mos-chinadns 监听地址”这一步我没做 |