将 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

设置完成
Before - GOV DNS SPOFFING

After - CORRECT RESULT

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
将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT+实践]的更多相关文章
- Openwrt路由器上安装python
在路由器安装python之前,还是经过了一番折腾的.淘宝上买了个已经刷好系统的小米迷你路由器,但里面安装的不是预期的Pandorbox,而是LEDE. 这个固件已经带了大量自带的软件,128的内存实在 ...
- Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析
默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...
- Dnsmasq安装与配置-搭建本地DNS服务器
默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...
- 开发OpenWrt路由器上LuCI的模块
[题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit ...
- Openwrt路由器上常用的操作
换了好些固件,大体上都差不多. 只能用opkg下载安装,不能用apt-get安装. 1.tcpdump和nano是我必备的,个人觉得nano比vi好用 opkg install tcpdump opk ...
- Openwrt 路由器上 安装 svn server
Openwrt 上也可以搭建 svn 服务了,这样就不用开着 ubuntu 了,省电. 在后台打开 ssh 服务,或者使用 telnet 服务,使用 putty 登录路由器. 如下图所示,这里刷的是 ...
- Openwrt路由器上开发微信公众号应用
利用nohup命令创建启动服务 nohup, /dev/null 2>&1,输出重定向 http://www.cnblogs.com/taosim/articles/2610170.ht ...
- OpenWrt路由器通过LuCI界面实现Guest SSID功能
转自: http://blog.ltns.info/linux/guest_ssid_over_openwrt_router/ 之前尝试过 Tomato路由器设置VLAN实现Guest SSID功能, ...
- Dnsmasq加速本地DNS请求
文章目录 Dnsmasq安装 Dnsmasq配置 Dnsmasq启动 Dnsmasq使用 Dnsmasq小结 默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了 ...
随机推荐
- 第七章 :分布式监控与SNMP监控
7.1 分布式监控 7.1.1 作用 分担压力,减轻负载 多机房监控 zabbix Server ===> zabbix agent (只能同一个局域网监控) 分担压力,降低负载 zabbi ...
- PostgreSQL 之 yum安装 postgis 插件
版本说明: CentOS7.5 + PostgreSQL 10.5 参考资源: https://www.postgresql.org/download/linux/redhat/ http://dow ...
- numpy.ravel() vs numpy.flatten()
首先声明两者所要实现的功能是一致的(将多维数组降为一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflec ...
- Python绘制2D图像
封装了一个简单的2d绘图函数 from matplotlib import pyplot as plt def plot_line(*args, **kw): """ : ...
- Hive与HBase集成进行数据分析
我们把hive的安装包上传的节点3来 解压 现在我们还是老规矩通过notopad++来连接我们的虚拟机来配置文件,把下面这两个文件重命名一下 修改这个文件 对hive-env.sh我们修改这里 下面我 ...
- JVM总结-虚拟机加载类
从 class 文件到内存中的类,按先后顺序需要经过加载.链接以及初始化三大步骤.其中,链接过程中同样需要验证:而内存中的类没有经过初始化,同样不能使用.那么,是否所有的 Java 类都需要经过这几步 ...
- [python] pyCharm 右击出现run unittest 解决办法
最近在使用 pyCharm 的时候发现一个情况,右击时出现 "unittests for ...",这时候如果继续点击 run ,可能会出现错误. 看到网上的介绍说,原因是程序方法 ...
- django之模板系统 --》内容(filter过滤器、tags标签【for、if、with】、母板以及继承、crf_token、注释、组件、静态文件【load static】、get_static_prefix、自定义标签和tag)
常用: Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ 变量名 }} 变量名由字母数字和下 ...
- python-性能测试
目录: 1.timeit 1.1 在命令后调用timeit 1.2 在代码中使用 1.3 创建计时器实例,通过autorange获得循环次数 1.4 Wall时间和CPU时间 2.profile和cP ...
- oracle 问题
OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用. 客户端文件没复制全 ORA-01017: invalid username/password; logon denied == ...