国内 dns 解析国外域名竟然这么慢

2024-09-01 17:31:49 +08:00
 52acca

本来用的 AdGuardHome 白名单模式分流国内外域名,腾讯系域名用的 dnspod ,国内其他域名用的 alidns ,其他域名用的 quad9 、cloudflare 、opendns 等国外 dns ,今天突然改成黑名单模式,少数域名用国外 dns ,剩下的腾讯系继续用 dnspod ,其他的都用 alidns 。结果发现打开很多国外网站特别慢,一看查询日志,原来 alidns 解析很多国外域名都是 1000ms+,这不慢才怪了,看来还是白名单模式更适合,虽然会存在部分错杀(部分国内域名由于用了默认的国外 dns 解析到了非最优的国内 ip 上)。

7163 次点击
所在节点    DNS
49 条回复
xiaomoxian
2024-09-01 19:29:06 +08:00
先过一遍饭炸系统
JensenQian
2024-09-01 21:47:39 +08:00
哥们别折腾了
国内直接走运营商的拉到了,国外走 8888 和 1111 ,完事
Atomo
2024-09-01 22:34:49 +08:00
听劝,国内统一走运营商,国外统一走 1111
52acca
2024-09-01 22:36:03 +08:00
@JensenQian 关键问题是你如何能确定完整的国内域名名单?如果能有全名单,那我除国内域名外的其他域名走国外 dns 就简单了。而且运营商 dns 有个挺致命的问题,HTTPS 解析,也就是 type 65 要么没结果,要么就是错的,这算是我国内用 alidns 最大的原因吧,当然成都电信 alidns 的速度本来也就跟电信 dns 差不多,5ms 左右吧
R4rvZ6agNVWr56V0
2024-09-01 22:45:18 +08:00
@52acca 如果你不是在经营机场,那么盲猜你访问的国内站点是非常有限的有限集,除非后缀为 GOV.CN / .CN 外大概不会超过 40 个 (日常访问 [国内站点不超过 10+ 个] ,每个站点有 3 个不同的 CDN 域,这么计算) 这个国内的站点列表,有相关的开源项目 https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash/China
52acca
2024-09-01 23:03:57 +08:00
@GeekGao 我是将 https://github.com/felixonmars/dnsmasq-china-list 项目中的所有中国域名用 alidns 解析的,但总会有一些漏网之鱼,而打开一个 app 或者网站的速度很多时候是由那个 app 或网站访问的所有域名解析+连接速度决定的,也就是短板效应,由于其中部分域名解析慢或者更可能是解析到了慢的 IP 上,就可能导致访问慢。
52acca
2024-09-01 23:16:20 +08:00
@GeekGao 而且你不用 AdGuardHome 这种软件估计对自己一天的 dns 解析数量没太大概念,我也是用了之后才大吃一惊,我一个人在家的时候一天的解析量就有 5w 左右吧,这还是没开屏蔽的情况下,如果开了屏蔽会窜到将近 10W (有些 app 在得不到相应的情况下会重复请求)。虽然这其中绝大多数是重复的,但其中不重复的也有几百上千个域名吧,很多 app 和网站一打开就会请求两位数域名的。
maxus
2024-09-02 00:54:47 +08:00
你为什么不用 adh 加 mosdns 方案,mosdns 国内外分流解析,还能缓存,国内外网页一般都秒开,我觉得很好用
Terminl
2024-09-02 03:10:07 +08:00
alidns 和 dnspod 开始限速了你居然不知道,现在只支持个人使用,家里设备一多请求速上来不卡才怪嘞。
R4rvZ6agNVWr56V0
2024-09-02 03:14:46 +08:00
@52acca 没什么银弹,除非你在低延迟墙外地区(例如 HK )自己搭建 DoH 服务器,负面作用就是成本高。
52acca
2024-09-02 07:25:31 +08:00
@Terminl 我当然知道要开始限速了,不过不是还没开始吗,而且我除了用公共的外,还都用了个人账户的,并不是这个原因,应该是国外域名在 alidns 和 dnspod 服务器上没缓存,导致访问缓慢
lw4free
2024-09-02 08:51:08 +08:00
我一般是 黑名单走国外 dns 其他走国内 dns 查询结果匹配国内 IP 不匹配的继续走国外 dns 国内 IP 是有限的 哪怕用的是 mmdb 数据库 我估计匹配准确率也超过 99.9% 遇上某些特殊的域名就单独处理 如果加上白名单只走国内 dns 就基本不会错了(我的 openswrt 内存不足 没搞白名单)
yyysuo
2024-09-02 09:07:41 +08:00
1:Adguard Home 不要开屏蔽,没效果还能整疯一些 app
2:国内域名国内 dns 解析,国外域名国外 dns 解析,不在列表中的域名,统一带 ecs (所在城市 IP )发到 8888 解析。
3:阿里的 api ,已经有实现了: https://github.com/mili-tan/ArashiDNS.Aha
52acca
2024-09-02 10:10:32 +08:00
@yyysuo 这跟我以前差不多吧,不过我是除了少数不需要 ecs 的国外域名用 cloudflare 和其它不支持 ecs 的国外 dns 解析,不在名单内的默认走国外支持 ecs 的 dns 。alidns 每月一千万额度,即使 doh 或者 dot 暂时也够用了,dnspod 每月三百万额度是真不够,只敢用来解析腾讯系域名,这样做 7 月份都还超了,额外付了费。只是这样存在一个问题我,就是不在国内名单中走了默认的国外支持 ecs 的域名被解析成国内 ip 但是非最优 ip 的情况不可避免,而解析成国外 ip 反倒不用担心,这部分会流入科学软件中做了进一步分流,先国内 dns 解析,如果不是国内 ip 会走不支持 ecs 的国外 dns 。
52acca
2024-09-02 10:12:08 +08:00
@lw4free AdGuardHome 实现不了这个功能啊,不能根据解析结果再做判断。
nonfxck
2024-09-02 10:23:23 +08:00
这个题目我知道,我周末刚用 mosdns ,体验效果非常好,比以前 smartdns 简单多了
nonfxck
2024-09-02 10:29:34 +08:00
adguardhome 使用 53 替换 dnsmasq
adguardhome 上游 dns 使用 openclash dns 端口
openclash dns 设置上游仅保留 mosdns
mosdns 配置腾讯阿里谷歌 CF dns
yyysuo
2024-09-02 10:30:46 +08:00
@52acca 怎么区分一个域名是不是需要带 ecs 解析呢,另外像你标题中说的,国内的 dns 对小众域名的支持不好,解析也慢,准确度也不好说,我用 8888 带 ecs 解析,目前看来准确度很好,原来解析出中国 ip 还用国内 dns 再解析一次,现在干脆直接采用了。
52acca
2024-09-02 10:35:41 +08:00
@yyysuo 少数已知被和谐或者我希望走代理的域名走不带 ecs 的国外 dns ,其他都走带 ecs 的。本来昨天替换成默认走国内 dns 是想减少这种国外 dns 因为 ecs 解析到国内非最优 ip 的情况,但偶然发现国内 dns 解析国外小众域名速度太慢的问题,所以又想改回去了。
52acca
2024-09-02 10:36:38 +08:00
@nonfxck 这个思路貌似不错,我也研究一下 AdGuardHome 的上游使用 xray 的 dns 解析

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

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

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

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

© 2021 V2EX