突然发现阿里的 DoH 还挺有意思的~

2020-05-11 14:13:59 +08:00
 marquina

用我写的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 多久修复。

19591 次点击
所在节点    DNS
21 条回复
marshmallow
340 天前
可以试试 Windows Service Wrapper ,我之前用 winsw 来启动 nginx 的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670528

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX