首页 > 资源分享 > SmartDNS,高性能本地DNS服务器,极大优化网络访问速度
2019
05-01

SmartDNS,高性能本地DNS服务器,极大优化网络访问速度

SmartDNS,高性能本地DNS服务器,极大优化网络访问速度

SmartDNS是一个运行在本地的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回个客户端,提高网络访问速度。同时支持指定特定域名IP地址,并高性匹配,达到过滤广告的效果。

支持树莓派,openwrt,华硕路由器,Windows 10 WSL等设备。

smartdns是移动宽带,长城宽带用户的福音。

下载路径:https://github.com/pymumu/smartdns/releases 
使用指导及安装配套表:https://pymumu.github.io/smartdns/  

效果展示

以百度为例,分别用阿里DNS 223.6.6.6和SmartDNS对比。

阿里DNS结果:

pi@raspberrypi:~/code/smartdns_build $ nslookup www.baidu.com 223.5.5.5
Server:         223.5.5.5
Address:        223.5.5.5#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 180.97.33.108
Name:   www.a.shifen.com
Address: 180.97.33.107

pi@raspberrypi:~/code/smartdns_build $ ping 180.97.33.107 -c 2
PING 180.97.33.107 (180.97.33.107) 56(84) bytes of data.
64 bytes from 180.97.33.107: icmp_seq=1 ttl=55 time=24.3 ms
64 bytes from 180.97.33.107: icmp_seq=2 ttl=55 time=24.2 ms--- 180.97.33.107 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 24.275/24.327/24.380/0.164 ms
pi@raspberrypi:~/code/smartdns_build $ ping 180.97.33.108 -c 2
PING 180.97.33.108 (180.97.33.108) 56(84) bytes of data.
64 bytes from 180.97.33.108: icmp_seq=1 ttl=55 time=31.1 ms
64 bytes from 180.97.33.108: icmp_seq=2 ttl=55 time=31.0 ms--- 180.97.33.108 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 31.014/31.094/31.175/0.193 ms

SmartDNS结果:

pi@raspberrypi:~/code/smartdns_build $ nslookup www.baidu.com
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 14.215.177.39

pi@raspberrypi:~/code/smartdns_build $ ping 14.215.177.39 -c 2
PING 14.215.177.39 (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=56 time=6.31 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=56 time=5.95 ms--- 14.215.177.39 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 5.954/6.133/6.313/0.195 ms

可以看到,在未使用SmartDNS时,访问百度时延在30ms左右,使用smartdns后,时延在6ms。

从对比看出,smartdns找到访问www.baidu.com最快的IP地址,这样访问百度比阿里DNS速度快5倍。

特性

多DNS上游服务器
支持配置多个上游DNS服务器,并同时进行查询,即使其中有DNS服务器异常,也不会影响查询。

返回最快IP地址
支持从域名所属IP地址列表中查找到访问速度最快的IP地址,并返回给客户端,提高网络访问速度。

支持非标准端口
支持非53端口查询,支持TCP查询。

特定域名IP地址指定
支持指定域名的IP地址,达到广告过滤效果。

域名高性能后缀匹配
支持域名后缀匹配模式,简化过滤配置,过滤20万条记录时间<1ms

Linux/Windows多平台支持
支持标准Linux系统(树莓派),openwrt系统各种固件,华硕路由器原生固件,同时支持Windows 10 WSL系统。

支持IPV4, IPV6双栈
支持IPV4,IPV6网络,支持查询A, AAAA记录,支持IPV4,IPV6双栈IP优选策略。

高性能,占用资源少
多线程异步IO模式,cache缓存查询结果。

功能说明

SmartDNS接收本地网络设备的DNS查询请求,如PC,手机的查询请求。

SmartDNS将查询请求发送到多个上游DNS服务器,可采用标准UDP查询,非标准端口UDP查询,及TCP查询。

上游DNS服务器返回域名对应的Server IP地址列表。SmartDNS检测与本地网络访问速度最快的Server IP。

将访问速度最快的Server IP返回给本地客户端。

界面预览

SmartDNS,高性能本地DNS服务器,极大优化网络访问速度

使用下载配套安装包
下载配套版本的SmartDNS安装包,对应安装包配套关系如下。(请访问https://pymumu.github.io/smartdns/  查看最新配套表)

系统    安装包    说明    

标准Linux系统(树莓派)    smartdns.xxxxxxxx.armhf.deb    支持树莓派Raspbian stretch,Debian 9系统。    

标准Linux系统(x86_64)    smartdns.xxxxxxxx.x86_64.tar.gz    支持x86_64 Linux 系统。    

Windows 10 WSL (ubuntu)    smartdns.xxxxxxxx.x86_64.tar.gz    支持Windows 10 WSL ubuntu系统。    

华硕原生固件(optware)    smartdns.xxxxxxx.mipsbig.ipk    支持MIPS大端架构的系统,如RT-AC55U, RT-AC66U.    

华硕原生固件(optware)    smartdns.xxxxxxx.mipsel.ipk    支持MIPS小端架构的系统。    

华硕原生固件(optware)    smartdns.xxxxxxx.arm.ipk    支持arm小端架构的系统,如RT-AC68U。    

Padavan    smartdns.xxxxxxx.mipselsf.ipk    padavan固件。    

openwrt 15.01    smartdns.xxxxxxxx.ar71xx.ipk    支持AR71XX MIPS系统。    

openwrt 15.01    smartdns.xxxxxxxx.ramips.ipk    支持MT7260小端等路由器    

openwrt 15.01(潘多拉)    smartdns.xxxxxxxx.ramips_24kec.ipk    支持MT762X等小端路由器    

openwrt 15.01(潘多拉)    smartdns.xxxxxxxx.ramips_24kec.ipk    支持MT7620系列的潘多拉固件    

openwrt 18.06    smartdns.xxxxxxxx.mips_24kc.ipk    支持AR71XX MIPS系统。    

openwrt 18.06    smartdns.xxxxxxxx.mipsel_24kc.ipk    支持MT7260小端等路由器    

openwrt 18.06    smartdns.xxxxxxxx.x86-64.ipk    支持x86-64路由器    

openwrt 18.06    smartdns.xxxxxxxxxxx.arm_cortex-a9.ipk    支持arm A9核心CPU的路由器    

openwrt 18.06    smartdns.xxxxxxxxx.arm_cortex-a7_neon-vfpv4.ipk    支持arm A7核心CPU的路由器    

openwrt LUCI    luci-app-smartdns.xxxxxxxxx.xxxx.all.ipk    openwrt管理统一界面    


openwrt系统CPU架构比较多,请查看CPU架构后下载,CPU架构可在路由器管理界面找到,查看方法:

登录路由器,点击System->Software,点击Configuration Tab页面,在opkg安装源中可找到对应软件架构,下载路径中可找到,如下,架构为ar71xx


src/gz chaos_calmer_base http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base

使用说明
https://pymumu.github.io/smartdns/ 

下载:SmartDNS,高性能本地DNS服务器,极大优化网络访问速度 

版本说明:

如果没有你要的版本,请在回复中留言,注明一下信息:
【路由器型号】:
【CPU型号】:
【openwrt适用的固件路径】:(https://downloads.openwrt.org/releases/目录中给出)
【opkg的安装源信息】:(登录路由器,点击System->Software,点击Configuration Tab页面的内容)

更新日志

【2019/4/1】

增加DOH https的支持。(wireformat格式)

增加端口占用检测。

优化双栈IP优选的性能。

增加上游重试机制,避免网络异常失败。

支持域名分流功能(nameserver配置项和-group参数)。

支持TLS使用SPKI校验(-spki-pin参数)。

conf-file支持相对路径。

文档增加FAQ说明。

修正一些小错误。

新增armbian arm64 debian stretch系统的支持。

【2019/2/18】

addres配置项支持指定#,#4,#6,-分别表示域名返回SOA, A地址返回SOA, AAAA地址返回SOA以及忽略规则。

ipset配置项支持指定-,忽略配置规则。

支持padavan固件

支持AR71xx的潘多拉固件

支持ignore-ip指定丢弃结果中的IP地址。

解决IP双栈优选下的几个错误。

增加配置选项:打印加载时的错误到syslog或终端,方便定位配置错误。

优化性能以及可靠性。

解决一些crash异常。

新增windows 10 WSL支持。

【2019/1/8】

增加IP黑名单支持,支持使用IP黑名单过滤特定DNS服务器返回的结果

增加IPSET的支持,配合ipset使用。

bogus-domain,ipset,blacklist支持IP子网。

支持过滤特定DNS服务器的伪造域名。

支持IPV4, IPV6之间IP地址优选策略。

污染IP过滤增强。

优化查询超时机制,保证查询超时时间1.1s内。

提升Luci界面配置保存速度。

支持启用或停用上游服务器。

解决crash的BUG。

解决一些BUG。

增加异常定位能力。

优化Luci界面配置。

优化baidu DNS回应错误包时的日志打印。

【2018/12/1】

增加TCP查询服务器。

增加openwrt下的重定向模式配置。

增加dns查询审计日志功能,记录dns查询请求。(请在自定义配置中增加配置项)

修改几处BUG。

【2018/11/3】

增加TLS查询支持。

增加X86版本的支持。

升级配套openwrt18.06

修改进程可能死循环的BUG。

修改进程可能异常退出的BUG。

【2018/9/4】

增加关闭IPV6的功能。

优化部分日志打印。

【2018/8/17】

增加伪造毒IP地址过滤功能(bogus-nxdomain参数)

增加支持arm_cortex-a15_neon-vfpv4

修正一处代码BUG。

修正潜在的一个并发问题。

【2018/8/9】

LUCI界面增加smartDNS自定义参数界面。

增加conf-file参数。

修改address匹配规则a,按域名匹配(之前版本后缀匹配)

解决X86-64系统下定时器失效的错误。

解决openwrt错误日志打印问题。

【2018/8/7】

1. 解决LEDE系统下,重启后,redirect未生效的问题。

2. 增加IPV6场景下的端口重定向。
3. 增加重定向是否生效的检测。并提示。
【2018/8/3】
1. 解决华硕路由器中服务重启问题。
2. 优化,当域名只有一个IP的情况下,不做检测。
3. 增加arm_cortex-a9_vfpv3的支持
4. 解决界面服务状态显示未刷新的问题
5. 优化指导书,刷新检查服务是否生效的方法
6. 界面默认启用redirect
注意:之前版本升级到此版本,需要重启路由器,否则服务状态将获取失败。
【2018/7/31】
1. 增加配置smartdns服务器名字,完善帮助。
2. 增加中文界面.
【2018/7/30】
1.增加x86_64, arm_cortex_a9, arm_cortex_a7的支持
【2018/7/25】
1. 解决smartdns服务在路由器重启时没启动的问题。
【2018/7/24】
1. 解决LEDE安装时的segment falut错误。
2. 支持X86-64系统

原文地址:https://www.right.com.cn/forum/thread-331558-1-1.html 

免费支持本站

支付宝打赏微信打赏