geniusy
V2EX  ›  DNS

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

  •  
  •   geniusy · Sep 1, 2024 · 9900 views
    This topic created in 794 days ago, the information mentioned may be changed or developed.

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

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

    jackOff
    jackOff
    Sep 2, 2024
    29
    adguardhome1:劫持全局 dns ,上游整个分流容器 1
    adguardhome2:局部 dns ,比如给 openclash 调用,上游整个分流器 2
    adguardhome3:国内上游查询,阿里百度。是分流器 1 和 2 的国内 dns 查询
    adguardhome4:国外上游查询,8888,1111 ,是分流器 2 的国外 dns 查询
    分流器 1 的国外 dns 查询接 openclash 的 dns 端口
    jsGnVO6q0zVF7B6c
    jsGnVO6q0zVF7B6c
    Sep 2, 2024 via iPhone
    30
    mosdns 上游国内外分流
    AdGuardhome 上游 moddns
    passwall 上游 AdGuardhome
    yyws2012
    yyws2012
    Sep 2, 2024 via Android
    31
    v2ray/xray 有一个功能是根据返回 ip 判断取这个结果或者往后 fallback 。我现在的策略是,先域名列表 cn 直接用国内,然后都走国外,如果解析出的 ip 是国内的再回落到国内。这样只会有两种情况回落不生效:一是 geoip 不全,这个找 chinamax 库的应该不多见;二是在海外有服务器,这种直接走代理就完事。可以试试用这个做 adguard 的上游。
    Nyarime
    Nyarime
    Sep 2, 2024
    32
    可以用这两个,实测无污染
    162.14.21.178
    162.14.21.56
    lw4free
    lw4free
    Sep 2, 2024
    33
    @52acca 我用的是 routedns 用 mosdns 也行 不能判断的话很难实现 dns 完美分流
    geniusy
    geniusy
    OP
    Sep 2, 2024 via Android
    34
    @yyws2012 你这样还是会有个问题,有些有国内 ip 的域名会被国外 DNS 解析成国外 ip 而不会回落
    geniusy
    geniusy
    OP
    Sep 2, 2024 via Android
    35
    @lw4free AdGuardHome 没有根据解析结果判断后进一步处理的功能,的确很难做到完美分流
    geniusy
    geniusy
    OP
    Sep 2, 2024 via Android
    36
    @Andim dnscrypt-proxy 也用过一段时间,功能其实跟 AdGuardHome 差不多,都只能通过 upstream 文件指定哪些域名走哪些 dns ,但相比于 AdGuardHome 不支持 dot
    geniusy
    geniusy
    OP
    Sep 2, 2024 via Android
    37
    @jackOff 你这比我之前的还复杂,我以前是两台机器上分别运行了两个 AdGuardHome (一个全局,一个作为国内域名的上游),然后是软路由上的 dnsmasq 分别同时查询这两台机器
    jackOff
    jackOff
    Sep 2, 2024
    38
    @52acca 这个方案在于可以一个机器解决 dns 泄露的问题,也不会造成国内网络卡顿。尤其是 adguardhome 的设计很轻量,多部署几个也没有什么负担
    geniusy
    geniusy
    OP
    Sep 2, 2024
    39
    @maxus 没研究过 mosdns ,但既然 mosdns 都已经分流了,还套 AdGuardHome 干啥呢?
    geniusy
    geniusy
    OP
    Sep 2, 2024
    40
    @jackOff AdGuardHome 不算轻量啊,软路由多跑几个没问题,但硬路由的内存就很捉急了。套多了还有个问题,其中某一环出了问题可能全都挂了。所以自从 AdGuardHome 支持在 upstream 文件中在一串域名后列出多个 dns 后我就改成一层了,同时在软路由和一台 debian 虚拟机上都运行了 AdGuardHome 来做负载均衡。
    crysislinux
    crysislinux
    Sep 2, 2024 via Android
    41
    规则还是简单点好。国内域名就走运营商 dns ,剩下的全部 ecs 走 Google dns 。Google 的 ecs 还是比较准的,要是实在不放心就再判断下 ip ,国内 IP 再走一遍运营商的 dns
    geniusy
    geniusy
    OP
    Sep 2, 2024
    42
    @yyws2012 刚才摸索了一下,并没有找到适合将 xray 用作上游 dns 的入站连接方式,Dokodemo-Door 不返回数据,你有这么操作吗?
    jsGnVO6q0zVF7B6c
    jsGnVO6q0zVF7B6c
    Sep 2, 2024
    43
    @52acca agh 屏蔽广告,还能看访问了什么网站,通过 agh ,发现有个 docker 异常自动访问一些网站
    Jack927
    Jack927
    Sep 2, 2024
    44
    > 本来用的 AdGuardHome 白名单模式分流国内外域名,腾讯系域名用的 dnspod ,国内其他域名用的 alidns ,其他域名用的 quad9 、cloudflare 、opendns 等国外 dns ,今天突然改成黑名单模式,少数域名用国外 dns ,剩下的腾讯系继续用 dnspod ,其他的都用 alidns

    ---

    刚用 AdGuardHome 的新手求问,目前只用上了它自带的屏蔽功能。请问下这个怎么配的? 能简单说下,或者贴下文档地址吗?
    Jack927
    Jack927
    Sep 3, 2024
    46
    #45 @52acca 感谢
    anytk
    anytk
    Sep 3, 2024
    47
    mosdns+++ 用了真的比以前丝滑
    geniusy
    geniusy
    OP
    Sep 4, 2024 via Android
    48
    @anytk 确实是好东西
    geniusy
    geniusy
    OP
    Sep 4, 2024 via Android
    49
    @maxus 用上 mosdns 后还真是秒开了,mosdns yyds !
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1321 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 19:58 · PVG 03:58 · LAX 11:58 · JFK 14:58
    ♥ Do have faith in what you're doing.