首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  DNS

红鱼 DNS 正式发布, DoT & DoH only

  •  4
     
  •   qyb · 2018-09-20 09:26:56 +08:00 · 38919 次点击
    这是一个创建于 425 天前的主题,其中的信息可能已经有所发展或是发生改变。
    介绍在 https://www.rubyfish.cn 。昨天上线了第二个弹性 IP 的节点,有了一定的抗单点故障能力,这就算进入 alpha 公测阶段了吧。整套服务现在一共七台 VPS:正式服务一个阿里云杭州,一个腾讯云上海;上连美国,东亚各 2 一共 4 个 upstream 节点供不同出口需求选择;加上专门用于门户信息发布和监控的节点;希望这些准备工作让 Rubyfish DNS 不至于太山寨。

    这个项目,原本来源于一次自己搭建路由器的经历,思索要是国内有一个靠谱的 DNS provider 就简单不少;后来看到今年 DNS 安全的一系列新进展,包括 TLS 1.3 也正式完工,感觉这应该是一个趋势,于是就动手了。。。它的价值?我觉得是节省一点大家的时间,解析可靠、运行稳定、访问快速的 SLA 保障是我努力去做的。指望从这个服务获得什么回报?一方面是我自己的其它项目可能也是依赖一个公共 DNS 的,这个就当基础服务的成本;另一方面也许会直接提供基于 DNS 的其它的 to Developer/SysAdmin 的服务???我是 DNS 领域的新人,需要再摸索摸索。
    第 1 条附言  ·  2018-09-21 23:05:44 +08:00
    计划中秋节期间某天深夜会把两台服务节点重启一下服务,希望每台重启在 30 秒内完成。变更包括给上海节点增加 TLS 1.3、EDNS Keepalive 两个特性,以及一些域名配置变化
    第 2 条附言  ·  251 天前
    紧急通知:东亚区服务的 IP 115.159.154.226 下线,如果依赖该 IP 直连红鱼 DNS 的,请更改为 118.89.110.78
    第 3 条附言  ·  248 天前
    红鱼计划一个月后进入 beta,详情看新帖
    183 回复  |  直到 2019-11-18 15:06:39 +08:00
    1  2  
        101
    benedict00   349 天前 via iPad   ♥ 1
    @qyb https://dnscrypt.info/public-servers/ 似乎这里还没有改
        102
    ylx   348 天前
    windows 端服务器不在列表里面已经几天了 现在改成自动方案了
        103
    benedict00   347 天前 via Android
    @ylx 更新到最新 simple-dnscrypt,勾上 ipv4, dnssec,doh 来找服务器,往下找绝对有的。
        104
    herozhang   319 天前   ♥ 1
    已经用上,目前感觉良好。
        105
    yyws2012   317 天前   ♥ 1
    @qyb 安卓 9,某工具开启 root(NAT)模式后设置里私人 DNS 显示可以连接,但不知道实际上连接走的是 DOT 还是某工具设置的 DNS。这种情况有没有办法检测?
        106
    qyb   317 天前   ♥ 1
    @yyws2012 如果你说的是 ss-android 的话,走的是它自己的 DNS (这部分主功能它是引用了 overture 这个 golang 的项目)。相关代码它是写死的,即本地起一个 overture 服务,overture 把请求转发到 114/223/opendns ;用户选择远程 DNS 才走 socks5 到 8.8.8.8。我们本来有计划改变这个事情,包括给 overture 提交了支持 dot 的 patch,现在 overture 上游和 ss-android 都已经合并了相关代码;但下一步的功能合并涉及到 UI,变化比较大,我们提的第一个 PR 被拒绝了,原维护者提出了比较高的架构上的要求。。。接下来我们的精力会先放在商业化上,ss-android 是否能支持 DoT,只能随缘看几个月后我们有没有心思去搞了;熟悉安卓的人在当前的基础之上自己编译一个 DNS 走 DoT 的不是难事,而且可以顺便把它的广告干掉。
        107
    yyws2012   316 天前   ♥ 1
    @qyb archlinux 设置后打不开部分网站,用命令解析报错
    $ resolvectl query steamcn.com -t A

    steamcn.com: resolve call failed: DNSSEC validation failed: failed-auxiliary
        108
    qyb   316 天前
    @yyws2012 惭愧,以前没有注意过 DNSSEC 相关的故障。请问能把您的 systemd-resolved 相关配置发到 [email protected] 吗?我这里别的客户端 DNSSEC 确实有报错,但反而是 resolvectl 没有报错
        109
    benedict00   293 天前 via iPad
    clash 项目支持 DoT 了,https://github.com/Dreamacro/clash
        110
    gaoyuzhe22   270 天前   ♥ 1
    红鱼的 api 在请求的时候不能像 google dns 那样带上 edns_client_subnet=***嘛?我试了一下好像不行
    curl -s -H 'accept: application/dns-json' 'https://dns.rubyfish.cn/dns-query?name=www.google.com&type=aaaa&edns_client_subnet=202.40.161.203' |python -m json.tool
    返回的结果:"data": "2a00:1450:4007:816::2004"
    这个 ipv6 地址似乎不是香港的
        111
    qyb   270 天前   ♥ 1
    @gaoyuzhe22 确实不支持,这个特性需要有比较强的服务端能力来防止滥用(比如恶意刷 ECS 的缓存)
        112
    gaoyuzhe22   270 天前
    @qyb 因为教育网 ipv6 连 Google 可以走香港出口,速度比较快,所以我想如果红鱼的 ea-dns.rubyfish.cn 对 Google 的 AAAA 解析结果是 HK 的 ip 就很棒了
        113
    testcaoy7   269 天前   ♥ 1
    我发一下 Stubby 获取 tls_pubkey_pinset 的方法:
    echo | openssl s_client -connect 'ea-dns.rubyfish.cn:853' 2>/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
        114
    qyb   268 天前
    @gaoyuzhe22 我在两台 HK 的 VPS 上用 8.8.8.8 去 dig www.google.com ,分别得到 2404:6800:4008:802::2004 和 2607:f8b0:4007:801::2004,看注册区一个是北美一个是澳大利亚,不知道教育网那里可以直连的 www.google.com 的香港 IPv6 是什么
        115
    qyb   268 天前
    @gaoyuzhe22 请问您希望用 edns_client_subnet 的目的是什么呢?我刚刚想也许可以通过另外架设一套 server 来解决,但这样可能就会击穿 cache,享受不到缓存的好处了,做临时测试用可能还行
        116
    gaoyuzhe22   266 天前
    <script src=".js"></script>
        117
    qyb   266 天前
    @gaoyuzhe22 你这个例子里面的 IPv6 地址也是澳大利亚,所以你本机设一下 hosts,看看我前次给你说的两个 IP 能连吗?
        118
    gaoyuzhe22   266 天前   ♥ 1
    你用的 ipv6 数据库似乎有问题,我一般使用 https://ip.zxinc.org/ipquery/ 来确认 ipv6 地址的归属。
    你上面的提到的两个地址:
    2404:6800:4008:802::2004 中国台湾省台北市 Google Inc. 服务器网段 我这儿的 ping 延时大概在 70+,比香港稍微高一些
    2607:f8b0:4007:801::2004 美国 California 州 Los Angeles Google Inc. 服务器网段,我这儿的 ping 在 200 左右
    我提供的 ip 地址 2404:6800:4005:807::2004 属于中国香港区 Google Inc. 服务器网段
        119
    Love4Taylor   265 天前   ♥ 1
    你家 status 页面挂了

    >Refused to apply style from 'https://www.rubyfish.cn/sites/default/files/css/css_at2iRdA_n5bTTJVdrSEq-GjzhatE89uQf1IZlAOyqWY.css?pexec5' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
        120
    Love4Taylor   255 天前 via Android
    现在不写事件报告了?
        121
    qyb   255 天前
    @Love4Taylor 最近运维的事情由其它人在接手
        122
    testcaoy7   251 天前
    @qyb 现在服务器失效了,不管是 UW 还是 EA 的 stamp 都失效了,是 stamp 改变了吗?如果改变了,能否更新一下?
        123
    qyb   251 天前
    @testcaoy7 被攻击了,临时换了 IP,正在处理.
        124
    tifang   247 天前
    请教,openwrt,dnsmasq 配合 https_dns_proxy,在解析某些小众网站时。当使用 rubyfish doh,Windows 上显示 DNS 解析失败(不同网络环境不同 PC 下,均自动获取 IP 与 DNS,Chrome&IE ),2 台安卓手机解析正常( Chrome,未开启私人 DNS )。当使用 google doh,所有设备均解析成功。
    经查看 dnsmasq 记录,发现 rubyfish 其实正确解析了 IP,与 google reply 的结果一致。
    想不通 rubyfish 的解析结果在 Windows 上无效在 Android 上却没问题。百思不得其解,求赐教。
        125
    tifang   247 天前
    抓了下包
    rubyfish 解析错误
        126
    tifang   247 天前
    抓了下包

    rubyfish 解析错误
    Domain Name System (response)
    Transaction ID: 0x89eb
    Flags: 0x8180 Standard query response, No error
    Questions: 1
    Answer RRs: 2
    Authority RRs: 0
    Additional RRs: 0
    Queries
    Answers
    [Malformed Packet: DNS]
    [Expert Info (Error/Malformed): Malformed Packet (Exception occurred)]
    [Malformed Packet (Exception occurred)]
    [Severity level: Error]
    [Group: Malformed]

    google
    Domain Name System (response)
    Transaction ID: 0x7656
    Flags: 0x8180 Standard query response, No error
    Questions: 1
    Answer RRs: 1
    Authority RRs: 0
    Additional RRs: 0
    Queries
    Answers
    [Request In: 425]
    [Time: 0.323234000 seconds]
        127
    Love4Taylor   247 天前
    unbound 似乎在 DNSSEC 的转发上有有些问题.
    在 systemd-resolved 设置为 DNSSEC=allow-downgrade 之后一些域名例如 www.bilibili.com 无法解析, unbound 上会输出 Verified that unsigned response is INSECURE 的 log.
    同设置 8.8.8.8 没问题.
        128
    qyb   246 天前
    @Love4Taylor 你说的这个是红鱼的问题还是 unbound 的问题?
        129
    Love4Taylor   246 天前 via Android
    @qyb 应该是 unbound, 但没搜到相关资料. 我自己的 DoT 服务以及你们的服务测试都有这个问题.
        130
    qyb   246 天前
    @tifang 从描述不太确认问题出在哪里。测试协议问题,https_dns_proxy 可能有点小众了;建议使用流传更广泛的 client 进行测试,比如 dnscrypt-proxy 或者 libcurl ( https://github.com/curl/doh)
        131
    qyb   246 天前
    @Love4Taylor 在 unbound.conf 里加入 domain-insecure: bilibili.com 能避开这个错误吗?
        132
    Love4Taylor   246 天前
    @qyb #131 不行. 并且如果 unbound 设置了缓存, 那么只要有一个用户如此用 systemd 解析会导致空解析被缓存而牵连其他用户.

    unbound[134004]: [134004:2] info: resolving www.bilibili.com. A IN
    unbound[134004]: [134004:2] info: response for www.bilibili.com. A IN
    unbound[134004]: [134004:2] info: reply from <.> 192.168.2.113#5300
    unbound[134004]: [134004:2] info: query response was CNAME
    unbound[134004]: [134004:2] info: resolving www.bilibili.com. A IN
    unbound[134004]: [134004:2] info: response for www.bilibili.com. A IN
    unbound[134004]: [134004:2] info: reply from <.> 192.168.2.113#5300
    unbound[134004]: [134004:2] info: query response was ANSWER
    unbound[134004]: [134004:2] info: resolving biliapi.com. DS IN
    unbound[134004]: [134004:2] info: response for biliapi.com. DS IN
    unbound[134004]: [134004:2] info: reply from <.> 192.168.2.113#5300
    unbound[134004]: [134004:2] info: query response was nodata ANSWER
    unbound[134004]: [134004:2] info: NSEC3s for the referral proved no DS.
    unbound[134004]: [134004:2] info: Verified that unsigned response is INSECURE
    unbound[134004]: [134004:2] info: resolving bilibili.com. SOA IN
    unbound[134004]: [134004:2] info: response for bilibili.com. SOA IN
    unbound[134004]: [134004:2] info: reply from <.> 192.168.2.113#5300
    unbound[134004]: [134004:2] info: query response was ANSWER
    unbound[134004]: [134004:2] info: resolving bilibili.com. DS IN
    unbound[134004]: [134004:2] info: response for bilibili.com. DS IN
    unbound[134004]: [134004:2] info: reply from <.> 192.168.2.113#5300
    unbound[134004]: [134004:2] info: query response was nodata ANSWER
    unbound[134004]: [134004:2] info: validate(nodata): sec_status_insecure
        133
    him007   234 天前 via Android
        134
    him007   234 天前 via Android
        135
    hhhsuan   234 天前
    @him007 #133 这个不能优化,如果是根据域名来决定是否走代理的话,这里返回一个国内地址,就变成用代理来访问一个国内地址了,速度会非常感人。
        136
    him007   233 天前 via Android
    @hhhsuan 好吧,我平常都是直接根据国内外 ip 分流的。
    “如果是根据域名来决定是否走代理的话”,这个一般都是 gfwlist 里面的域名通过代理远程 dns 解析的,不会通过 rubyfish 解析。
    不使用代理时,有些网站可以直连,但是 fonts gstatic com 返回国外地址的话会出现问题。
        137
    Love4Taylor   233 天前 via Android
    只剩一个 IP 了?
        138
    qyb   226 天前
    @Love4Taylor 莫名的来了大量的流量...带宽有点扛不起
        139
    qyb   226 天前   ♥ 1
    @him007 感谢您为我提供了一个思路,我可能提供另外一个 DNS 服务目标是专门提供国内可访问的 IP
        140
    hikara   195 天前   ♥ 1
    今天在 github 上看到有介绍这个项目,特来感谢!
        141
    ksmter   180 天前
    联通网络,感觉总是比原来的 dns 慢半拍,一查解析出来的 ip 都是电信的,是否可以优化一下
        142
    qyb   179 天前
    @ksmter 如果你是在北方联通,可以试一下我们测试中的在北京的服务器,暂时服务器地址用 www.rubyfish.cn (DoT only) ,另外我们有 IPv6 专用在测试中,v6.rubyfish.cn
        143
    ksmter   179 天前
    北京那个感觉不错,虽然很多网站仍然返回电信 ip,但是实际打开速度比较快,卡顿减轻不少。v6 暂时就不试了,现在的 ipv6 不怎么好用,再等等吧
        144
    qyb   172 天前
    @ksmter 我们现在正在观望政策,如果觉得可以继续往下走会逐步增加各地布点
        145
    CEBBCAT   170 天前
    1024,忙活了一天,终于想到 DoH,服务很棒!
        146
    wsqstar   167 天前   ♥ 1
    目前出现 ios 端( ipad air 3 )删除单条 host 记录会闪退,但是逐条修改可以。
        147
    qyb   167 天前
    问题已经找到,请等待更新
        148
    xtddd   165 天前
    @qyb 这个 doh 不会泄露隐私吧
        149
    sasayaku   160 天前
    域名挂在 cloudflare 解析有点慢
        150
    CEBBCAT   155 天前
    请问为什么我的 blog.zhangsy.me 解析超时?是这个域名被 CNAME 到了 sy.netlify.com 的原因吗?
        151
    Love4Taylor   154 天前
    海外到 v6 不通么 23333
        152
    qyb   152 天前
    @Love4Taylor v6.rubyfish.cn 从海外不通??我从日本能连
        153
    Love4Taylor   152 天前 via Android
    @qyb 现在倒是没问题 前两天测试没通
        154
    Bunnyranch   152 天前
    SimpleDNSCrypt 设置好了之后能退出不。。还是要一直挂在后台工作
        155
    Bunnyranch   152 天前
    另外 用上之后发现访问 B 站的时候,视频封面的图片加载不全 /较慢
        156
    qyb   151 天前
    @yeezylife SimpleDNSCrypt 需要一直挂在后台工作,对 B 站加载慢是一个已知的问题,就是我们对 CDN 的支持还不够好。一个方案是用更强大的 DNSClient,针对特定域名走本地运营商的 DNS 进行解析,现在我们只提供了 iOS App 在做这件事情; Windows 上可能有同行在做类似的客户端
        157
    qyb   151 天前
    @Love4Taylor 国内公有云的 IPv6 看起来还是质量没达到商用的地步呀...
        158
    Love4Taylor   151 天前
    @yeezylife
    @qyb #155 那是某个静态资源域名 (i0.hdslb.com/s1.hdslb.com) 根本没解析出来吧, 最起码我在 Android App 上用 rubyfish 就经常会这样.
        159
    loson   150 天前 via iPhone   ♥ 1
    希望能增加华南的节点,华南走香港的线路是不错的…
        160
    seyvyo   149 天前   ♥ 1
    点赞支持!但请问在安卓 9.0 上使用会不会影响联通定向免流服务的使用呢?
        161
    qyb   148 天前
    @loson 目前正在试着申请电信增值业务许可证,在许可证没有之前,不打算有什么新变化了。。。另外就是即使申请了许可证下来,鉴于目前这个监管的趋势,在什么范围内提供服务,以及提供到什么级别的服务,也还是要慢慢踩线探索..
        162
    qyb   148 天前
    @seyvyo 已经有用户报告影响了
        163
    leavic   140 天前
    请问你们的 DNS 服务是否有域名审查,例如部分政治网站的域名会被返回 servfail ?
        164
    qyb   139 天前
    @leavic 这个是白名单模式,只有部分域名才会走海外解析路径,不在白名单内的仍然会受到投毒的影响
        165
    leavic   139 天前   ♥ 1
    @qyb 👌,这可能也是在不主动作恶的情况下能给出的最好方案了。
        166
    qyb   138 天前   ♥ 1
    @leavic 感谢鼓励。但实话说,白名单也是一种自我审查,要自我判断哪些域名不能加入到白名单。覆巢之下无完卵,红尘滚滚无完人。。。Privacy DNS 这个技术对抗的是各种不靠谱的劫持者,而不是 upstream ;至于 upstream 那是国家说了算的
        167
    soys   133 天前
    大佬这个要怎么用啊,不能注册吖..._(:з)∠)_
        168
    bclerdx   101 天前 via Android
    @loson 希望增加华北节点。
        169
    Buges   93 天前   ♥ 1
    @qyb #166 提个建议,审查没关系,完全理解任何形式的审查过滤。但希望对“非法”的请求能直接立刻拒绝解析,这样本地的 dns 客户端( dnscrypt-proxy )就可以再向其他服务器查询,尽量不要返回任何被污染的结果,感谢。
        170
    qyb   92 天前
    @Buges 我研究一下这个模式。这样会不会让 dnscrypt-proxy 给我降权呢??不过降权讲真也无所谓就是了
        171
    Buges   90 天前
    @qyb #170 我也不太清楚 dnscrypt-proxy 的路由机制,但只要把你们的服务器加列表里总会优先使用(因为延迟最低),并且因为地址在 cn 也不会被代理转发导致解析到境外 cdn。如果能这样做的相当于从你们那部署了一套非常方便的分流机制,并且直接拒绝“非法”请求从“法律法规”上讲也没太大问题...
        172
    qyb   88 天前
    @Buges 提醒一下,这么做的前提是,我们能精准判断出某个域名是否被 5 ;需要我们在运营过程中不断根据某些特征去把相关域名过滤出来;仍然会有部分域名仍然从我们这里得到错误的响应,我们无法保证。当然你提的思路是正确的——如果我已知某域名有问题,比如说草榴吧,不给任何返回结果也比返回一个假的要更正确。至少给了有能力设置多个 upstream server 的人一个得到正确结果的机会。谢谢。技术上我已经找到 unbound 可能可以利用的点,最近几天会测试一下
        173
    fetich   43 天前   ♥ 1
    楼主,你好。我在官网上找到了两个节点 rubyfish.cndns.rubyfish.cn ,文档中说,前者推荐普通用户使用,配备了威胁网址拦截,后者不推荐普通人使用,而且上游在海外。

    结合本帖之前的回复,在审查方面,是否可以认为:

    1. rubyfish.cn 不具备规避投毒的能力;
    2. dns.rubyfish.cn 对不在白名单的域名,查询结果仍会受投毒的影响。

    这里还有一个问题,所谓「威胁网址过滤能力」是直接返回查询失败,还是劫持跳转到你们设定的特定页面?

    感谢楼主费心搭建服务和回答问题。
        174
    qyb   38 天前   ♥ 1
    @fetich 前面的理解,你是对的。威胁网址过滤,我们返回 127.0.0.1
        175
    bclerdx   20 天前 via Android
    @lilydjwg 深信服防火墙会导致网络故障么?
        176
    lilydjwg   20 天前
    @bclerdx #175 我是自己做的路由,只把需要的部分经由虚拟机连到深信服 VPN,所以不太会导致故障。另外这 VPN 并不常用的。
        177
    bclerdx   19 天前 via Android
    @lilydjwg 自己做的路由表么?
        178
    lilydjwg   19 天前
    @bclerdx #177 是啊。
        179
    blueswhisper   15 天前
    我使用移动宽带在 Mac OS 上的 Firefox 70.0.1 版本使用 dns.rubyfish.cn , 发现访问 QQ 空间时会出现 9 张图,有部分图片无法正确加载的问题,将 dns.rubyfish.cn 关闭后,则所有图片都可以正确加载。图片地址不太方便提供,如果楼主能复现的话,能否解决下?
        180
    qyb   13 天前
    @blueswhisper 目前对 QQ 的 CDN 资源确实支持不好,暂时没有想好怎么来改进这块
        181
    Neoth   12 天前   ♥ 1
    红鱼的 “raw.githubusercontent.com.” 记录污染超过 3 天了:
    "Answer": [
    {
    "name": "raw.githubusercontent.com.",
    "type": 1,
    "TTL": 193,
    "Expires": "Wed, 06 Nov 2019 …… UTC",
    "data": "69.171.228.20"
    }

    下面来自 google dns:
    "Authority": [
    {
    "name": "228.171.69.in-addr.arpa.",
    "type": 6,
    "TTL": 1799,
    "data": "a.ns.facebook.com. dns.facebook.com. 1573037723 14400 1800 604800 3600"
    }
        182
    qyb   10 天前
    @Neoth 已经处理
        183
    Neoth   23 小时 58 分钟前
    红鱼现在进入了自动就污染,手动就错状态?
    github 被红鱼解析到了无法连接 IP
    192.30.255.112
    这是美国 IP 才会 cdn 分配的

    按这里: http://www.17ce.com/site/cdn/20191118_581864f009d111eaa07fbfea566ac039:1.html
    按 17ce 给出的 IP 图,13 开头的 IP 由 amazon 云提供,在 国内 都可以正常访问
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4065 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 34ms · UTC 07:05 · PVG 15:05 · LAX 23:05 · JFK 02:05
    ♥ Do have faith in what you're doing.