V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kincaid
V2EX  ›  宽带症候群

大家自建的 DNS 是自己递归查询还是做分流转发到上游

  •  
  •   kincaid ·
    PRO
    · 17 天前 · 3448 次点击
    刚在别的板块吃完瓜,扯点闲的

    昨天看一个大佬发长文讲 DNS 的 SRTT 机制,但对于家用场景来看,自己递归的响应时间还是太长了,尤其是前几次甚至 dns 查询耗时能飞到 1000+ms ,所以想问问大家是转发还是自己递归

    个人是用 bind9 搭建的,每天从 https://www.internic.net/domain/root.zone 同步根区域数据,然后由 bind9 进行迭代查询,后面感觉受不了又在前面套了个 adguard 做乐观缓存

    想看看各位大佬都是怎么玩的,是自己递归还是转发到 119 一类的,用的 bind9 还是说 unbound 之类的,感觉效果怎么样
    36 条回复    2025-08-19 10:33:32 +08:00
    abcl8023y
        1
    abcl8023y  
       17 天前
    大佬发长文讲 DNS 的 SRTT 机制,这个有链接吗
    kincaid
        2
    kincaid  
    OP
    PRO
       17 天前
    mangmaimu
        3
    mangmaimu  
       17 天前 via iPhone
    用运营商 dns ,有问题直接代理软件分流,国外域名直接 fakeip 用 vps 查询 dns
    XiLingHost
        4
    XiLingHost  
       17 天前   ❤️ 1
    转发到上游,试试 dnsdist ,挺好用的 https://www.dnsdist.org/index.html 配置文件语法是 lua
    kincaid
        5
    kincaid  
    OP
    PRO
       17 天前
    @mangmaimu 我现在也是客户端上跑的代理软件,自建 dns 只是运营商有时候 dns 劫持搞的烦人
    kincaid
        6
    kincaid  
    OP
    PRO
       17 天前
    laminux29
        7
    laminux29  
       17 天前
    大部分普通人与中小公司,自建 DNS 只有 2 个目的,第一是把内网设备对公网域名的请求拦截并转换为内网 IP ,第二是转发 DNS 请求给上级运营商。

    bind9 太难用了,不如用 dnsmasq ,配置简单,满足日常功能。
    mangmaimu
        8
    mangmaimu  
       17 天前 via iPhone
    @kincaid 我现在污染的十个手指头都数的过来,主要 surge 网络界面查问题很方便,singbox 之类的就难说了,自己弄地区优化全没了,不如运营商还快
    kincaid
        9
    kincaid  
    OP
    PRO
       17 天前
    @mangmaimu 哈哈哈,我 bind9 搭在了内网,要不也有个坑,bind9 的社区版不支持 ecs ,没法玩
    COW
        10
    COW  
       17 天前
    clash dns 分流,国内域名走国内 DNS 服务器,国际域名 fallback 国际 DNS 服务器,内网访问时走 bind9 服务器,bind9 开启 fallback only 转发到 DNS 代理工具,由上游处理。
    COW
        11
    COW  
       17 天前
    adguard 用处主要在广告过滤,缓存作用有限
    ranaanna
        12
    ranaanna  
       17 天前
    完全没有这个必要的吧。再怎么玩“自己递归”也是一个非权威递归 dns ,性能和安全可能都比不上一把一把的公共递归 dns ,isp 提供的递归 dns 也不是完全不能用

    敝人是用两个 windows server 做域控兼内部 dns ,上游到两个 dnsmasq 做分流兼 ad-blocker (其中一个还兼 dhcp server ),国外和国内分别分流到两个 dnscrypt-proxy ,分别到 cloudflare 的 ODoH 和 google 的 DoH, 以及阿里和腾讯的 DoH
    holoto
        13
    holoto  
       17 天前
    最好的方案是 adg 搭配 2 个 doh edns 设置 ip 归属地上流。adg 设置好 yaml 文件 规则分流给这个 2 个 dns 上流
    2397613259qqq
        14
    2397613259qqq  
       17 天前
    用运营商 dns ,或者公共递归 dns
    kincaid
        15
    kincaid  
    OP
    PRO
       17 天前
    @ranaanna 目前发现唯一一个好处就是不会被污染,会直接返回为空
    kincaid
        16
    kincaid  
    OP
    PRO
       17 天前
    @holoto 确实,也是个不错的方案,我当时甚至想过一个反人类的操作,把常用域名的权威服务器直接配到 adguard
    julyclyde
        17
    julyclyde  
       17 天前
    root zone 不需要经常同步吧
    那玩意应该已经几十年没改了
    kincaid
        18
    kincaid  
    OP
    PRO
       17 天前
    @julyclyde 我基本每天,还有 arpa 也会同步
    peasant
        19
    peasant  
       17 天前
    如果递归服务器放在国内,没有特殊优化过的国际链路的话,慢到惨不忍睹,如果递归服务器放在日本、香港、新加坡,只用来查询 NS 在国外的域名,延迟还是可以的。

    我在香港的递归服务器查询 58 万次平均响应延迟 72ms ,国内大部分高频访问的域名我都分流去阿里 DNS 了。

    目前我尝试过的递归软件对 ECS 支持最好的就是 PowerDNS Recursor 了。
    maybeonly
        20
    maybeonly  
       17 天前
    最前面是 dnsmasq ,做分流:
    白名单送运营商 dns
    黑名单送 8888 或者 1111
    不知道的送递归
    然后递归是 bind ,根据 ip 路由表自动分流

    想不泄漏 dns 又能墙内外分流的话,我是不知道其他办法了
    ferock
        21
    ferock  
    PRO
       17 天前 via iPhone
    adg home 搭建
    cr3bit
        22
    cr3bit  
       17 天前
    @laminux29 同名内网现在有个问题是 ios 会强制走加密还是自己的 dns ,然后服务套 cdn 之类就会从绕道外面
    chinni
        23
    chinni  
       17 天前
    直接用 udpme 转发到 8888 ,结束
    czwstc
        24
    czwstc  
       17 天前   ❤️ 1
    1423
        25
    1423  
       17 天前
    混合方案才是最好的
    比如有的小众域名 NS 指来指去最后是个非洲小国, 你要是自己组了跨国内网 GEOIP 路由到非洲出口解析当然最快了
    NS 单点在 hk 的更是如此, 国内大厂 DNS 可能绕美国,但你自己可以翻过去

    海外不少域名都托管给 cloudflare, 递归过去可能还不如直接转发给 1.1.1.1

    所以没有银弹,明白妥协了什么就好
    nivalxer
        26
    nivalxer  
       16 天前
    目前用的 paopaodns ,是递归 DNS ,同时作者加了预热、缓存、境内外分流代理等特性,能够满足首次启动情况下响应速度不会太慢的问题
    前面套了一层 AdguardHome ,部分特殊的解析,例如电信的 WifiCalling 域名等,就在这上面做,启用乐观缓存
    用了应该快 1 年,只有在特殊情况下清理过缓存( redis )重启过,大部分时间没遇到问题,AdguardHome 上统计响应 24 小时平均响应时间 2ms 、上游处理时间 6ms (预热的功劳吧)
    julyclyde
        27
    julyclyde  
       16 天前
    @kincaid 你每天更新,见到 root zone 变化了吗?

    按说这玩意,都不是技术更新而是行政更新的
    kincaid
        28
    kincaid  
    OP
    PRO
       16 天前
    @julyclyde 其实每天都在变得 https://www.internic.net/domain/root.zone ,只不过不影响什么
    sanquan
        29
    sanquan  
       16 天前 via iPhone
    @mangmaimu 正解
    julyclyde
        30
    julyclyde  
       16 天前
    @kincaid 啊?每天?只改了序列号吧?
    chanChristin
        31
    chanChristin  
    PRO
       16 天前
    我用的付费的 dns ,想尝试的可以走我的 aff https://dash.xns.one/invite/7fa999e3-4dd0-46eb-ab39-c483eede9815
    qujiqujl
        32
    qujiqujl  
       16 天前
    <img src="https://tu.quji.org/images/2025/08/17/image.png" alt="image.png" border="0">
    我用的是自建的,递归的上游也是自建的在日本
    kincaid
        33
    kincaid  
    OP
    PRO
       16 天前
    @julyclyde 其实仔细看看全是 dnssec 相关的
    LOVOQ
        34
    LOVOQ  
       15 天前
    身为懒人用 p**sw4ll 整合的 dnsmasq 转发到 chinadns-ng ,虽然看说明不太靠谱(“智能:同时转发给直连和远程 DNS ,如果直连 DNS 解析结果是大陆 IP ,则使用直连结果,否则使用远程结果。
    使用智能模式,直连 DNS 返回空响应时:不接受:等待并使用远程 DNS 的响应。”)但实际应用效果还不赖。至今没被污染。
    Serino
        35
    Serino  
       15 天前
    本地 DNS 吗?不递归,因为没必要。

    如果是开放出来的 DNS 另说。

    现在的科学上网软件,比如 ClashMihomo ,域名命中需要代理的规则之后,是直接发送域名给代理服务器,让代理服务器自己解决 DNS 。本地的 DNS 只是起到一个"区分"的作用。

    个人建议是弄 2~3 个 AdGuardHome 的 docker ,用 nameserver-policy/direct-nameserver 给 Mihomo 分流。
    2 个 AGH 的话,国内一个,国外一个。
    3 个的话,国内分运营商 DNS 和加密 DNS 。大部分国内服务 (geolocation-cn 或者 geosite:cn ,都用运营商 DNS ,或者自己手动设置一些 geosite 国内的分组的用运营商 DNS ,这样基本不会有类似微信图片加载不出来的问题)
    yangfan1999
        36
    yangfan1999  
       14 天前
    就 adguard home + mosdns ,前者可以用来统计 DNS 访问情况,查询解析记录。后者可以给 DNS 分流,不同域名使用不用 DNS 服务商进行解析。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1629 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:24 · PVG 00:24 · LAX 09:24 · JFK 12:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.