1
parametrix 2020-02-26 23:08:02 +08:00
过代理的话就要利用 edns 特性,stubby 可以试一试
edns_client_subnet_private : 0 |
2
loukky OP @parametrix 这个是加在配置文件里面吗?
|
3
loukky OP @parametrix 好像确实用上了 edns 的特性,但是某些域名还是解析到国外的 cdn 了,huya.com 解析到阿里云香港去了...
|
4
parametrix 2020-02-27 00:16:58 +08:00
@loukky stubby 的这个特性应该只是传递 edns,估计下游客户端也不确定自己的公网 ip,所以传递了不准确的信息。
目前支持指定 edns 的客户端很少,openwrt 上就更少了,https-dns-proxy 的旧版本可以做到,但最近也删掉了。所以这个确实很麻烦,简单的处理方法是国内的网站就直连国内的 dns 进行解析。 |
5
zro 2020-02-27 00:33:15 +08:00
借楼问下,如何在 OP 开多个 stubby 后台(配置都有些许不同),虽然多开 SSH 能勉强应付得了。。
|
6
loukky OP @parametrix 感谢,目前测试发现,有些域名有时候会解析到国外的 cdn,但是有时候又会解析国内 cdn,比如 www.recaptcha.net 会解析到国外,但是 recaptcha.net 又解析到国内。
目前看来还是等待 stubby 进一步完善,暂时还是设置多个上游 dns 较好。 |
8
loukky OP @zro opendns 很奇怪,举个例子,解析 at.alicdn.com 如果使用 53 端口,解析结果是国内,如果使用 443 或者 5353 端口,解析的结果是国外。不知道为什么?
|
9
ExcitedCodes 2020-02-27 08:00:40 +08:00
github/ExcitedCodes/SmartChinaDNS
这个智能分流 DNS 可能对你有帮助 |
10
missdeer 2020-02-27 08:32:51 +08:00
|
11
leido 2020-02-27 08:36:51 +08:00
即使你用了 edns,谷歌也有一定概率给你解析到香港和美国,前面说的 opendns 我没试过,楼主可以试试
|
13
azh7138m 2020-02-27 11:24:15 +08:00
目前我在路由器上用 overture 来转发 DNS 请求
EDNSClientSubnet.Policy manual EDNSClientSubnet.ExternalIP 随便填了一个同市的 IP |
14
Kobayashi 2020-02-27 13:05:55 +08:00 via Android
分流。ChinaDNS 基于 IP 位置分流,dnsmasq 用来缓存外加 GFW 列表。
@loukky Opendns 问题基本断定是你被运营商 DNS 劫持了。53 口 NAT 到自家 DNS,返回给你一个自己家缓存地址。可以根据 dig +trace 判断。 @missdeer 如果用 DoT coredns 就算了。目前 DoT stubby 效率最高,可以复用链接,8.8.8.8:853 60ms 内可达,比自家 Unbound 都快。另外不知道 coredns 有没有类似 ChinaDNS 基于 IP 分流的方案。 @azh7138m overture 我记得 DoT 有 bug,一次请求得有 1s。好像后开修复了,请求 Google DNS 大概 200ms,没有复用连接,还是比不过 stubby。 |
17
missdeer 2020-02-27 13:16:40 +08:00
@Kobayashi 几乎所有用 Go 写的轮子大概都用的同一个 package( https://github.com/miekg/dns),从协议实现上说是不会有啥区别的。也许只能给上游开 issue 改进了。
|
19
imn1 2020-02-27 13:48:51 +08:00
@Kobayashi
我也习惯套一个,但我的需求是 cache+修改 TTL,不喜欢同一天内多次解析都要跑一次,直接读 cache 就够了,返回结果的 TTL 都比较短时效,我要改为 20 小时 |
20
loukky OP @zro 应该是被劫持了的。另外 opendns 的 DOT 域名是什么? google 的这个有时候还是会返回国外 cdn 地址,很烦。特别是谷歌自己的域名,经常会这样。fonts.googleapis.com adservice.google.com www.googletagservices.com g.doubleclick.net 这几个域名经常会返回谷歌香港或者台湾的 ip。。。
|
21
zro 2020-02-27 16:56:22 +08:00
@loukky #20 OpenDNS 暂不支持 DoT。。。
我用 OpenDNS DoH 查你的几个域名,nslookup 结果如下: Name: fonts.googleapis.com Address 1: 203.208.50.167 Address 2: 203.208.50.165 Address 3: 203.208.50.164 Address 4: 203.208.50.160 Address 5: 203.208.50.168 Address 6: 203.208.50.166 Address 7: 203.208.50.174 Address 8: 203.208.50.162 Address 9: 203.208.50.169 Address 10: 203.208.50.161 Address 11: 203.208.50.163 Address 12: 2404:6800:4002:80f::200a Name: adservice.google.com adservice.google.com canonical name = pagead46.l.doubleclick.net Name: pagead46.l.doubleclick.net Address 1: 203.208.50.89 Address 2: 203.208.50.90 Address 3: 203.208.50.77 adservice.google.com canonical name = pagead46.l.doubleclick.net Name: www.googletagservices.com www.googletagservices.com canonical name = pagead46.l.doubleclick.net Name: pagead46.l.doubleclick.net Address 1: 203.208.39.205 Address 2: 203.208.39.218 Address 3: 203.208.39.217 www.googletagservices.com canonical name = pagead46.l.doubleclick.net 最后一个 *** Can't find g.doubleclick.net: No answer *** Can't find g.doubleclick.net: No answer |
24
zro 2020-02-27 19:26:16 +08:00
|
25
loukky OP @zro opendns doh 用 stubby,解析到的 IP 还是国外的..怪了
https://imgur.loukky.com/imgs/2020/02/35454953caa07cfc.png |
26
loukky OP 这个是配置文件
resolution_type: GETDNS_RESOLUTION_STUB round_robin_upstreams: 1 appdata_dir: "/var/lib/stubby" tls_authentication: GETDNS_AUTHENTICATION_NONE tls_query_padding_blocksize: 128 edns_client_subnet_private: 0 idle_timeout: 10000 listen_addresses: - 127.0.0.1@5453 - 0::1@5453 dns_transport_list: - GETDNS_TRANSPORT_TLS upstream_recursive_servers: - address_data: 146.112.41.2 tls_port: 443 tls_auth_name: "doh.opendns.com" - address_data: 2620:119:fc::2 tls_port: 443 tls_auth_name: "doh.opendns.com" |
29
slack 2020-02-27 20:25:11 +08:00
目前我还是在用 dnscrypt-proxy,其实 DoT 和 DoH 还有 DNSSEC 究竟哪个好啊?一堆乱七八糟的方案,不知怎么选择。
|
30
azh7138m 2020-02-27 20:34:43 +08:00
@Kobayashi
应该是懒。。。之前是 tunnel 到海外查询,现在换用机场,用 overture 代替这个 udp tunnel,就不折腾了 |
31
yulihao 2020-03-11 08:51:31 +08:00
@parametrix 我问了 https_dns_proxy 的作者,给来的答复如下:
This is a request to add back ECS support. To be clear, ECS support is not removed. It's just using the DNS protocol rather than the mechanism that Google supported in their JSON API. That said, I can see a good reason to want to use it and none of the other caching DNS resolvers really give much clear control over this field. RFC8484 doesn't provide any guidance either. I'll treat this as a feature request but can't provide any hard time lines. |