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

smartdns 终于开源了,可以放心替掉 dnsmasq 了

  •  
  •   brMu · 2019-12-15 14:19:39 +08:00 via Android · 22668 次点击
    这是一个创建于 1837 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个是我用过的 dns 里最喜欢的,原因有二:dnsmasq 几乎所有功能+并发查询+预读取+tcp 方式查询上级 dns。
    传统解析方式,打开谷歌会有个 1 秒左右的解析,有预读取基本每次都是秒开。
    并发查询避免了单个 DNS 可能不稳定的问题,记得今年 114 还宕过 1 次。
    第 1 条附言  ·  2019-12-17 16:09:46 +08:00
    补充几点:
    1.预读取不仅仅是缓存,是在 ttl 即将到期前主动去查询一次,让他一直保持在缓存中,当然也不是永久,有算法的。

    2.支持 ipset,不然后怎么替换掉 dnsmasq 呢。

    3.tcp 方式向上游 dns 查询的好处是,电脑用 udp 去向 dnsmasq 查询,dnsmasq 就一定也会用 udp 协议去向上游查询,而 smartdns 可以设定只用 tcp 方式去上游查询。所以 dnsmasq 要配合 pdnsd 或别的,smartdns 一个就搞定了。

    4.edns 目前好像是没有支持。

    5.我是用在软路由上,所以更新配置都很方便,别的路由器固件是否支持不清楚了。
    41 条回复    2019-12-24 22:00:57 +08:00
    DouEast
        1
    DouEast  
       2019-12-15 14:22:56 +08:00
    家里用的 K2P 路由,现在找看有没有集成了 smartdns 的固件。
    imn1
        2
    imn1  
       2019-12-15 14:28:00 +08:00   ❤️ 1
    你说的这些,好多工具都能做到,我想要的是你所说的基础上加个 eDns,就不好找了
    应该不是预读取吧,缓存才对,两者性质不同
    randyo
        3
    randyo  
       2019-12-15 14:31:55 +08:00 via Android
    支持 windows 吗
    haozi1986
        4
    haozi1986  
       2019-12-15 14:32:28 +08:00
    被运营商间歇性的网络劫持搞怕了,现在是 dnsmasq + dnscrypt-proxy,解析就算慢点无所谓,只要没劫持就好

    再者这类程序都是有缓存的,第一次慢,第二次就快了
    brMu
        5
    brMu  
    OP
       2019-12-15 14:34:04 +08:00 via Android
    @imn1 edns 确实没有,你可以向作者反馈试试。
    你说好多工具都能做到,我用过不少 dns,还真没发现一个 dns 能把这些全集成的。
    是预读取,缓存也有。
    imn1
        6
    imn1  
       2019-12-15 14:53:18 +08:00
    @haozi1986
    我现在 win 是 dnsforworder ( git 上国人作品)+stubby,linux 是 unbound+stubby,前一个做 cache,因为可以改 TTL,stubby 做 DoT

    github 上有个 overtrue,应该也是国人做的,回复都是简汉
    巧了,有个基于 overtrue 二次开发的也叫 smartdns,估计和 LZ 说的不是一个
    overtrue 有 eDNS,不过没有舍弃指定 ip (污染了)的功能,readme 写得比较简单,还在摸索
    Buges
        7
    Buges  
       2019-12-15 14:53:29 +08:00 via Android
    dnscrypt-proxy 当 dnsmasq 的后端之一,弄了一个 cn 域名白名单,名单内的直接向运营商查并写入 ipset 不走代理,以外的向 dnscrypt-proxy (仅使用 cloudflare doh )通过代理查询且结果也走代理连接。

    并发之类的没什么需求,dnsmasq 除了配置文件语法有点蛋疼其他都挺满意。
    reus
        8
    reus  
       2019-12-15 14:54:50 +08:00
    自己写一个 dns 服务器就行,需要什么就加什么
    mritd
        9
    mritd  
       2019-12-15 14:58:13 +08:00 via iPhone
    CoreDns 自己写插件
    sdrzlyz
        10
    sdrzlyz  
       2019-12-15 15:00:57 +08:00 via Android
    @brMu 没有?-check-edns 参数是啥
    brMu
        11
    brMu  
    OP
       2019-12-15 15:10:08 +08:00 via Android
    @sdrzlyz 有了?那就是我没看清楚,抱歉!
    laincat
        12
    laincat  
       2019-12-15 15:33:49 +08:00
    没想到突然开源了。。。
    tpsxiong
        13
    tpsxiong  
       2019-12-15 15:39:48 +08:00
    支持递归不
    themiscloud
        14
    themiscloud  
       2019-12-15 16:01:26 +08:00
    @mritd 用了大佬的 CoreDNS,特过来给大佬点个赞
    missdeer
        15
    missdeer  
       2019-12-15 17:35:13 +08:00
    @mritd
    @themiscloud
    CoreDNS+1,早期版本官方自带 proxy、forward 两个插件,足够解决分流和防污染问题
    Tink
        16
    Tink  
       2019-12-15 17:48:10 +08:00 via iPhone
    就是缓存
    brMu
        17
    brMu  
    OP
       2019-12-15 18:01:53 +08:00 via Android
    @Tink 预读取不是缓存,缓存有专门的缓存,prefetch 是你访问过一次后,它会在 ttl 快过期时再去查询一次,然后缓存下来。
    5460
        18
    5460  
       2019-12-15 20:33:20 +08:00
    用了一年了,最初是看中了特性的第二条
    支持从域名所属 IP 地址列表中查找到访问速度最快的 IP 地址,并返回给客户端,提高网络访问速度
    实际用下来不错,很稳定,还解决了运营商 DNS 的解析错误、污染问题
    Maskeney
        19
    Maskeney  
       2019-12-15 21:04:30 +08:00
    oho 开源了啊
    farmer01
        20
    farmer01  
       2019-12-15 22:35:59 +08:00
    Windows 没有客户端吗... 看来我又要花时间去集成到自己的路由固件里了
    leavic
        21
    leavic  
       2019-12-15 23:00:28 +08:00
    所以,有 openwrt 编译的 makefile 吗?
    zro
        22
    zro  
       2019-12-15 23:37:40 +08:00
    快加入 OpenWRT 仓库套餐吧~
    JayaOcean
        23
    JayaOcean  
       2019-12-16 05:04:29 +08:00 via Android
    koolshare ac86U 科学插件用上啦 太好用了!
    deorth
        24
    deorth  
       2019-12-16 07:54:04 +08:00
    最近 dnsmasq 遇到个问题,dnsmasq 的 cname 需要目标域名存在于 dhcp 或者 hosts 里面,对我来说这就是完全没有用
    semglassie
        25
    semglassie  
       2019-12-16 08:49:49 +08:00
    @5460 问题是被墙的网站怎么 ping 都是不通的,怎么区分这个 ip 行不行呢
    farmer01
        26
    farmer01  
       2019-12-16 09:52:08 +08:00
    @JayaOcean 梅林现在的软件中心有集成 Smartdns 吗?
    mritd
        27
    mritd  
       2019-12-16 10:39:23 +08:00
    @missdeer #15 主要是这玩意就是基于 caddy 的,可以自己写插件,想干啥干啥
    JayaOcean
        28
    JayaOcean  
       2019-12-16 16:42:08 +08:00 via Android
    tpsxiong
        29
    tpsxiong  
       2019-12-16 16:52:27 +08:00
    有没 dns server 支持 a 和 aaaa 记录使用不同的 upstream 的?
    sujin190
        30
    sujin190  
       2019-12-16 17:23:35 +08:00
    @sdrzlyz #10 支持 edns 缓存?没看到 GitHub readme 有说啊,试了很多个 dns 服务对 edns 支持都不好,unbound 支持完整一些,但是似乎有个问题,我认为是个 bug,就是如果首次就是不带 edns client option 请求并且回源获取解析,之后就算再带 edns client option 请求也没用了,始终返回首次解析回源的地址,坑死了
    Chingim
        31
    Chingim  
       2019-12-16 20:15:57 +08:00 via Android
    支持将查询结果加入 ipset 吗?
    5460
        32
    5460  
       2019-12-16 20:36:13 +08:00
    @semglassie ping 和 TCP 测速都不通的情况估计就不能返回最优结果了吧,不知道作者是怎么处理的。反正配置了黑名单,没发现有返回错误结果的情况。
    brMu
        33
    brMu  
    OP
       2019-12-17 08:16:54 +08:00
    @Chingim 支持加入 ipset 的
    mrlmh00
        34
    mrlmh00  
       2019-12-17 15:07:47 +08:00
    这东西怎么实现防止污染?
    linliting45
        35
    linliting45  
       2019-12-18 07:01:23 +08:00
    overture 实现效率有问题,域名列表一多就很慢...
    linliting45
        36
    linliting45  
       2019-12-18 07:05:03 +08:00
    这个挺方便的,国内域名列表一个查运营商,国外列表一个查 1.1.1.1,剩下的再测速,这样第一次加载也很快
    sdrzlyz
        37
    sdrzlyz  
       2019-12-19 12:31:13 +08:00 via Android
    @sujin190 搜下源码
    i6941
        38
    i6941  
       2019-12-22 16:17:15 +08:00
    @DouEast 找到了吗?同 K2p
    DouEast
        39
    DouEast  
       2019-12-22 23:00:27 +08:00
    @i6941 恩山论坛里面已经有集成 smartdns 的 openwrt 固件了,你可以去搜搜。
    ispace
        40
    ispace  
       2019-12-24 13:16:45 +08:00
    @JayaOcean 直接在插件上选 smart 还需要安装吗?
    JayaOcean
        41
    JayaOcean  
       2019-12-24 22:00:57 +08:00 via Android
    @ispace 选了就好 已经集成到插件里了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:42 · PVG 03:42 · LAX 11:42 · JFK 14:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.