• 将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT+实践]


    原文地址:

    1、https://typcn.com/legacy/blog/posts/openwrt-dnscypt.html

    2、http://www.openwrt.pro/post-376.html

    下面红字部份为本人实践的笔记

    之前一直用的是 ChinaDNS-C 结果发现解析速度奇慢无比,访问一个网站需要等 30 秒左右的主机解析时间,大概是到 Google DNS 的线路被随机丢包了吧

    试了试 OpenDNS 带 Anycast 的 DNSCrypt 服务器,70+ ms 还不错,于是就部署到了路由器上

    dl

    first

    一般情况下,直接使用 opkg install dnscrypt-proxy 就可以安装,如果提示未找到包的话,在下方选择合适的平台进行下载。

    这些安装包收集于网络,我没有找到更多的平台,手头没有 linux 的机子也没法编译,有条件的可以自己下载源代码进行交叉编译。

    ar71xx

    brcm63xx

    x86

    安装方法

    别告诉我你不会安装 ipk

    使用方法

    启动

    默认的设置可以直接使用
    
        /etc/init.d/dnscrypt-proxy start #启动
        /etc/init.d/dnscrypt-proxy enable # 设置开机自启
    
    如果没问题的话,程序已经成功 listen 到 2053 端口了[注:我在LEDE上最新的包安装后的端口是5353]
    

    设置 DNSmasq

    vi /etc/config/dhcp
    
    # 在 config dnsmasq 区域的最后加入
    
    option noresolv '1'
    list server '127.0.0.1#2053' [同样,这里也需要改为:127.0.0.1#5353]
    
    # 如果有 option resolvfile 开头的行 请删掉
    

    重启服务

    /etc/init.d/dnsmasq restart
    

    修改 DNS

    将你电脑的 DNS 服务器修改为你路由器的 IP,通常为 192.168.1.1

    将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT] - 无名小辈 - BA7IB

    设置完成

    Before - GOV DNS SPOFFING

    将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT] - 无名小辈 - BA7IB

    After - CORRECT RESULT

    将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT] - 无名小辈 - BA7IB

    Why

    之前我们使用了 DNSCrypt 来防止 DNS 解析的污染,但是 DNSCrypt 解析速度往往有些慢,而且部分网站的 CDN 会将你识别在国外,这样访问也很慢,用着就非常不爽,那么就需要再加一些配置使其在解析国内域名时使用本地 DNS 。

    修改启动脚本

    由于 OpenWrt (luci) 的配置文件是自动生成的,我们需要对他的启动脚本进行小 hack

    vi /etc/init.d/dnsmasq

    输入 /start() 回车,Vim 会将光标自动定位到 start 函数处,我们在 start 函数内新建一行 输入

    echo "conf-dir=/etc/dnsmasq.d" >> $CONFIGFILE

    如图

    [    注:新版的LEDE里面dnsmasq的启动脚本已经和原文大不一样了,复杂了很多,所以我选择直接在/etc/dnsmasq.conf文件的最后直接添加一行:conf-dir=/etc/dnsmasq.d    ]

    按 ESC 输入 :wq 保存并退出

    下载并安装

    打开 https://github.com/felixonmars/dnsmasq-china-list 点击 Download ZIP 下载后解压

    新建文件夹 /etc/dnsmasq.d

    将 accelerated-domains.china.conf 和 bogus-nxdomain.china.conf 放到 /etc/dnsmasq.d 中

    [  其实这里可以直接下载两个文件:

    vi get_dns_china_list.sh

    #!/bin/ash

    wget --no-check-certificate -O /etc/dnsmasq.d/accelerated-domains.china.conf "https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf"

    wget --no-check-certificate -O /etc/dnsmasq.d/bogus-nxdomain.china.conf "https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/bogus-nxdomain.china.conf"

    sed -i 's/114.114.114.114/本地dns以获得最快的解释/g' /etc/dnsmasq.d/accelerated-domains.china.conf

    另外,建议做个定时任务更新上面两个文件,半年一次便可

    ]

    重启 dnsmasq

    /etc/init.d/dnsmasq restart

    配置完成 !

    效果

    使用前:可以看到我的博客被解析到了日本节点

    使用后:正确解析到网宿节点

    [   经本人测试的结果,taobao.com和baidu.com由修改之前的解释到美国马上解释回国内的地址  ]

    本文章由作者:佐须之男 整理编辑,原文地址: 让 OpenWrt 上的 DNSmasq 解析国内域名用本地 DNS

  • 相关阅读:
    第二周编程总结
    介绍自己
    编程总结3
    PTA编程总
    PTA编程总结1
    《秋季学期学习总结》
    《人生路上对我影响最大的三位老师》
    介绍自己
    7-1 打印沙漏
    记叙在人生路上对你影响最大的三位老师
  • 原文地址:https://www.cnblogs.com/d9394/p/10611680.html
Copyright © 2020-2023  润新知