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

利用谷歌的 dns-over-https 实现无污染 dns

  •  
  •   mheTcQ · 2017-06-04 13:27:00 +08:00 · 29100 次点击
    这是一个创建于 2490 天前的主题,其中的信息可能已经有所发展或是发生改变。
    谷歌的 dns-over-https 说明在这里
    https://developers.google.com/speed/public-dns/docs/dns-over-https

    谷歌也提供了网页界面进行 dns 查询
    https://dns.google.com/

    需要用到的工具
    1,dingo 将 dns udp 查询转化成谷歌的 https 查询
    ( https://github.com/pforemski/dingo )
    2,谷歌 IP,查询的速度快慢就取决于它了
    3,dnsmasq
    4,linux

    配置 dnsmasq
    port=53
    no-resolv
    server=127.0.0.1#5353

    然后执行 dingo
    dingo -port=5353 -gdns:server=<谷歌 IP> -gdns:edns=<本地外网 IP 段> -gdns:sni=dns.google.com

    如果想要在后台执行,在上面的命令前加上
    screen -dmS dingo


    我这边使用的情况还是不错的,至于对 CDN 友好程度,大概跟 8.8.8.8 一样吧,没有好好的对比过。
    https://cl.ly/391u2g430242/dig-dns.png

    -
    22 条回复    2017-12-14 12:57:17 +08:00
    kuoruan
        1
    kuoruan  
       2017-06-04 13:30:24 +08:00
    收藏了。
    powergx
        2
    powergx  
       2017-06-04 13:33:26 +08:00
    关键是镜像站点的分配
    RqPS6rhmP3Nyn3Tm
        3
    RqPS6rhmP3Nyn3Tm  
       2017-06-04 14:08:37 +08:00 via iPad
    感觉查询速度会非常缓慢
    skydiver
        4
    skydiver  
       2017-06-04 14:21:18 +08:00 via iPad
    这跟 dnscrypt 没区别啊
    trys1
        5
    trys1  
       2017-06-04 14:46:35 +08:00 via Android
    即使 dns 纯净了,但是有些 ip 还是被墙
    pq
        6
    pq  
       2017-06-04 15:05:08 +08:00
    @skydiver dnscrypt 的那个服务器列表,我估计国内的运营商也下载了一份,然后针对性地封杀。移动到香港和新加坡的服务节点速度最快,但一用就被封杀,后来换成偏远小国的才能正常使用。

    可惜这个 dingo,在 openwrt 官方包仓库里没有。
    exkernel
        7
    exkernel  
       2017-06-04 15:39:17 +08:00
    看 PR 有我魔改过的 dingo,支持 SS
    mheTcQ
        8
    mheTcQ  
    OP
       2017-06-04 15:44:33 +08:00
    @BXIA 我这里查询 baidu.com 需要的时间 100ms 都不到

    @skydiver 这个相当于查询 8.8.8.8,估计比 dnscrypt 对 CDN 友好一些

    @trys1 是的,无法访问 IP 被封,或者不使用 HTTPS 的网站
    glogo
        9
    glogo  
       2017-06-04 16:32:34 +08:00
    就是个 dnsproxy
    expy
        10
    expy  
       2017-06-04 18:04:15 +08:00
    楼上的 SS 好评!懒得搞路由器的本机 53 端口开个 dingo 就行了。
    hzqim
        11
    hzqim  
       2017-06-04 20:50:54 +08:00
    既然都用上 dnsmasq,全局只用一个 nameserver 就不合理了
    关闭 no-resolv,去掉 server 设置项,默认走 ISP 的 DNS ;
    再设置 gfwlist 域名用 dingo 解析,国内国外都兼顾了。
    trys1
        12
    trys1  
       2017-06-04 21:19:33 +08:00 via Android
    @mheTcQ 既然不能翻墙,那这套方案有什么用?本来我也想自己写一套纯净 dns 的方案的,但是一想到仅仅是 dns 纯净而已,比如我不能得意地对朋友说“来,用我的 dns,你就能***”,自己的话,本来就有别的流畅方案了,所以我就放弃了这个项目
    mheTcQ
        13
    mheTcQ  
    OP
       2017-06-04 22:13:29 +08:00
    @hzqim
    @trys1

    哈哈,我自己是有用 dnsmasq 配置 hosts 的;至于不支持 https 的网站只能用其他工具了
    xx998
        14
    xx998  
       2017-06-04 22:33:42 +08:00 via Android
    既然都用上 dnsmasq 了,那么直接使用个强大的规则不就好了。
    https://github.com/sy618/hosts
    ma6174
        15
    ma6174  
       2017-06-04 22:36:35 +08:00   ❤️ 1
    之前用 dnspod 家的 http dns 搞了个类似的服务,在国内速度还是挺快的,带缓存,可以在路由器上跑 https://github.com/ma6174/myhttpdns
    cjjdaq
        16
    cjjdaq  
       2017-06-07 01:53:56 +08:00
    @ma6174 求弄个 c 版的
    ma6174
        17
    ma6174  
       2017-06-08 07:00:21 +08:00   ❤️ 1
    @cjjdaq Go 的交叉编译已经能保证在大多数操作系统和设备上运行了
    legend4
        18
    legend4  
       2017-06-09 10:50:30 +08:00 via iPad
    dingo 第一个 release 就用过,还是不如 dnscrypt 稳定,dingo 老是几分钟后就中断退出,不知是不是谷哥欠 ip 屏蔽的原因,还有,感觉 dnsmasq 不如 unbound
    mheTcQ
        19
    mheTcQ  
    OP
       2017-06-10 00:36:38 +08:00
    @legend4 至今用了一个月,没发现会中断推出,倒是谷歌的 IP 很重要,在电信能用的却不能在联通用,经常提示连接被重置
    cjjdaq
        20
    cjjdaq  
       2017-06-10 01:32:08 +08:00
    tcp 的或快或慢受不了。
    firefox12
        21
    firefox12  
       2017-06-26 14:43:25 +08:00 via iPhone
    鸡和蛋的关系 dns.google.com 不能直接访问
    sm1314
        22
    sm1314  
       2017-12-14 12:57:17 +08:00
    @ma6174 麻烦问下 可以在安卓运行吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2879 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:09 · PVG 21:09 · LAX 06:09 · JFK 09:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.