不知道从什么时候开始的
https://doh.pub/dns-query 502 了?
1
johnjiang85 2023-05-12 15:44:36 +08:00
测试是正常的,不过在 10:30-12:50 这个时间段 1.12.12.12 和 120.53.53.53 这两个 IP 有部分地区部分运营商可能会失败。
|
2
dingdangnao OP @johnjiang85 奇怪,我这用了联通和电信的蜂窝数据,还有电信的宽带,都是 502😂
|
3
johnjiang85 2023-05-12 16:02:38 +08:00
@dingdangnao 问下哪个地区的啊
|
4
johnjiang85 2023-05-12 16:11:08 +08:00
@dingdangnao 有复现,我找负责的人看下
|
5
dingdangnao OP @johnjiang85 好的,感谢您
|
6
johnjiang85 2023-05-12 17:51:24 +08:00
@dingdangnao 看下是不是 dnsid 传了 0 ,目前这两个 IP 的 doh 不支持 dns id 为 0 的请求,会返回 502 。正常的 dig/kdig/浏览器等发起的 doh 请求都是正常应答的。
可以通过或者抓包( POST )或者 GET 看下请求 url base64 编码的前 3 个字节是什么,比如如果是 AAA-AAD 表示 dns id 为 0 。 如果不是 dns id 为 0 的情况,可以发下请求串的 base64 或抓包的 16 进制都可以。 |
7
johnjiang85 2023-05-12 17:56:25 +08:00
@dingdangnao 说错了,id 可以为 0 ,但是 answer 不能是 1 或其他值,必须是 0 ,否则会 502 。
|
8
johnjiang85 2023-05-12 17:56:52 +08:00
@dingdangnao 也可能是其他参数校验错误,如果参数都正常的话可以正常应答。
|
9
johnjiang85 2023-05-12 18:09:53 +08:00
任何请求参数校验失败服务器会丢弃请求,前面的 nginx 自己回了 502
|
10
dingdangnao OP @johnjiang85 但是直接用浏览器访问,境外 IP 是会正常返回接口报错的,只有大陆 IP 返回了 502
https://cloud.dingdangnao.com/ORfgJ8.png 而且直接访问 doh.pub ,境外会重定向到 https://www.dnspod.cn/Products/publicdns ,大陆仍然是 502 |
11
johnjiang85 2023-05-12 20:13:43 +08:00
@dingdangnao [流汗]doh 不是这样直接使用的,如果只是想访问产品主页,建议直接从官网进入。
如果要用 DoH 进行 DNS 查询,建议直接使用相关软件或浏览器 /操作系统中设置安全 DNS 。 如果想通过命令行方式通过 DoH 进行 DNS 请求,则必须带查询参数,有两种 API ,google 的 json API 和 RFC 8484 两种方式,而 RFC 8484 又分为 GET 和 POST 两种不同的方式,请求参数都不一样,可以参考: https://developers.google.com/speed/public-dns/docs/doh?hl=zh-cn 比如查询 dnspod.com 需要请求,如果是 json api 就是类似这样 curl -v "https://doh.pub/resolve?name=www.dnspod.com&type=a" 或 curl -v "https://doh.pub/dns-query?name=www.dnspod.com&type=a" RFC 8484 GET 方式,其中 dns 参数是 dns 请求二进制数据进行了 base64 编码: curl -v "https://doh.pub/dns-query?dns=AAABAAABAAAAAAAAA3d3dwZkbnNwb2QDY29tAAABAAE" 如果是 RFC POST 方式则是将 dns 请求的二进制数据放到 post 数据里 |