突然发现阿里的 DoH 还挺有意思的~
資深大佬 : marquina 5
用我写的ts-dns配置一下(顺便打个广告,哈哈):
[groups] [groups.ali] doh = ["https://dns.alidns.com/dns-query"] rules = ["twitter.com", "baidu.com"]
我这里直接 ping 阿里 DNS 延迟大概是 5ms,用 DoH 的话第一次解析需要 80ms 左右,但后续解析不到 10ms (毕竟有 keep-alive ),延迟表现相当令人满意,可以考虑替换原来的 UDP DNS 。
我们都知道,DoH 相比传统 DNS 的一个优势是可以直接拿到 client ip,但比较蛋疼的是,阿里的 DoH 会在 DNS 响应里强制显示 client ip,而 Google 等厂商的 DoH 是不显示的(除非手动指定 client-subnet ),以后贴 dig 结果的时候要小心了。
$ dig -p 5305 baidu.com ... ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; CLIENT-SUBNET: xxx.xxx.xxx.xxx/32/24 ;; QUESTION SECTION: ;baidu.com. IN A ;; ANSWER SECTION: baidu.com. 31 IN A 220.181.38.148 baidu.com. 31 IN A 39.156.69.79 ...
但最有意思的还是差别待遇。解析敏感域名,如果将 client-subnet 设成墙内 IP (比如直接在墙内请求),就会返回污染后的结果;但如果将 client-subnet 设成墙外 IP,就会返回未被污染的结果……满满的嘲讽感,23333
$ dig -p 5305 twitter.com +subnet=223.5.5.5 ... ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; CLIENT-SUBNET: 223.5.5.5/32/24 ;; QUESTION SECTION: ;twitter.com. IN A ;; ANSWER SECTION: twitter.com. 85 IN A 69.171.235.16 ... $ dig -p 5305 twitter.com +subnet=8.8.8.8 ... ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; CLIENT-SUBNET: 8.8.8.8/32/24 ;; QUESTION SECTION: ;twitter.com. IN A ;; ANSWER SECTION: twitter.com. 30 IN A 104.244.42.1 ...
不知道这 BUG 多久修复。
大佬有話說 (12)
那我怎么办才能拿到正确的解析并且又不会把高延迟的节点解析给我呢?