原文地址:

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+实践]的更多相关文章

  1. Openwrt路由器上安装python

    在路由器安装python之前,还是经过了一番折腾的.淘宝上买了个已经刷好系统的小米迷你路由器,但里面安装的不是预期的Pandorbox,而是LEDE. 这个固件已经带了大量自带的软件,128的内存实在 ...

  2. Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  3. Dnsmasq安装与配置-搭建本地DNS服务器

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  4. 开发OpenWrt路由器上LuCI的模块

    [题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit ...

  5. Openwrt路由器上常用的操作

    换了好些固件,大体上都差不多. 只能用opkg下载安装,不能用apt-get安装. 1.tcpdump和nano是我必备的,个人觉得nano比vi好用 opkg install tcpdump opk ...

  6. Openwrt 路由器上 安装 svn server

    Openwrt 上也可以搭建 svn 服务了,这样就不用开着 ubuntu 了,省电. 在后台打开 ssh 服务,或者使用 telnet 服务,使用 putty 登录路由器. 如下图所示,这里刷的是 ...

  7. Openwrt路由器上开发微信公众号应用

    利用nohup命令创建启动服务 nohup, /dev/null 2>&1,输出重定向 http://www.cnblogs.com/taosim/articles/2610170.ht ...

  8. OpenWrt路由器通过LuCI界面实现Guest SSID功能

    转自: http://blog.ltns.info/linux/guest_ssid_over_openwrt_router/ 之前尝试过 Tomato路由器设置VLAN实现Guest SSID功能, ...

  9. Dnsmasq加速本地DNS请求

    文章目录 Dnsmasq安装 Dnsmasq配置 Dnsmasq启动 Dnsmasq使用 Dnsmasq小结   默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了 ...

随机推荐

  1. 第七章 :分布式监控与SNMP监控

    7.1 分布式监控 7.1.1 作用 分担压力,减轻负载 多机房监控 zabbix Server  ===>  zabbix agent (只能同一个局域网监控) 分担压力,降低负载 zabbi ...

  2. PostgreSQL 之 yum安装 postgis 插件

    版本说明: CentOS7.5 + PostgreSQL 10.5 参考资源: https://www.postgresql.org/download/linux/redhat/ http://dow ...

  3. numpy.ravel() vs numpy.flatten()

    首先声明两者所要实现的功能是一致的(将多维数组降为一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflec ...

  4. Python绘制2D图像

    封装了一个简单的2d绘图函数 from matplotlib import pyplot as plt def plot_line(*args, **kw): """ : ...

  5. Hive与HBase集成进行数据分析

    我们把hive的安装包上传的节点3来 解压 现在我们还是老规矩通过notopad++来连接我们的虚拟机来配置文件,把下面这两个文件重命名一下 修改这个文件 对hive-env.sh我们修改这里 下面我 ...

  6. JVM总结-虚拟机加载类

    从 class 文件到内存中的类,按先后顺序需要经过加载.链接以及初始化三大步骤.其中,链接过程中同样需要验证:而内存中的类没有经过初始化,同样不能使用.那么,是否所有的 Java 类都需要经过这几步 ...

  7. [python] pyCharm 右击出现run unittest 解决办法

    最近在使用 pyCharm 的时候发现一个情况,右击时出现 "unittests for ...",这时候如果继续点击 run ,可能会出现错误. 看到网上的介绍说,原因是程序方法 ...

  8. django之模板系统 --》内容(filter过滤器、tags标签【for、if、with】、母板以及继承、crf_token、注释、组件、静态文件【load static】、get_static_prefix、自定义标签和tag)

    常用: Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ 变量名 }} 变量名由字母数字和下 ...

  9. python-性能测试

    目录: 1.timeit 1.1 在命令后调用timeit 1.2 在代码中使用 1.3 创建计时器实例,通过autorange获得循环次数 1.4 Wall时间和CPU时间 2.profile和cP ...

  10. oracle 问题

    OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用. 客户端文件没复制全 ORA-01017: invalid username/password; logon denied == ...