找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 387706|回复: 1073

【2022-8-6】【已开源】SmartDNS,高性能本地DNS服务器,极大优化网络访问速度

 火... [复制链接]
发表于 2018-7-22 21:25 | 显示全部楼层 |阅读模式
本帖最后由 shenmuecn 于 2022-8-6 17:33 编辑

特别说明
smartdns为免费开源软件,未收取任何费用,如有问题,请移步github提交issue或提交相关代码patch。
如软件对自己有用,可以github上点赞支持下。
如无用,选择不用即可,请不要谩骂或带节奏。
作者并没有从此软件获益,开发此软件为作者本身使用需要,作者也没有义务或责任为smartdns的使用问题负责,也不会收取所谓的智商税。

国内开源不易,多谢各位的理解和支持。

作者建议使用默认配置,仅需增加上游服务器地址,默认配置已经优化最佳,此模式已经适配大部分场景。
如果需要修改配置,请阅读相关的帮助,正确配置,避免配置错误起到反作用。


阿里云公共DNS 223.5.5.5/223.6.6.6因不支持tcp的pipeline模式,会导致查询异常,不建议使用其tcp/tls模式。

2022-8-6更新内容详见更新日志。


SmartDNS


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结果:
baidu.com-ali.png

SmartDNS结果:

local.png

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

特性
  •     多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返回给本地客户端。

界面预览

UI.png

使用下载配套安装包

下载配套版本的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。
Padavansmartdns.xxxxxxx.mipselsf.ipkpadavan固件。
openwrt 15.01smartdns.xxxxxxxx.ar71xx.ipk支持AR71XX MIPS系统。
openwrt 15.01smartdns.xxxxxxxx.ramips.ipk支持MT7260小端等路由器
openwrt 15.01(潘多拉)smartdns.xxxxxxxx.ramips_24kec.ipk支持MT762X等小端路由器
openwrt 15.01(潘多拉)smartdns.xxxxxxxx.ramips_24kec.ipk支持MT7620系列的潘多拉固件
openwrt 18.06smartdns.xxxxxxxx.mips_24kc.ipk支持AR71XX MIPS系统。
openwrt 18.06smartdns.xxxxxxxx.mipsel_24kc.ipk支持MT7260小端等路由器
openwrt 18.06smartdns.xxxxxxxx.x86-64.ipk支持x86-64路由器
openwrt 18.06smartdns.xxxxxxxxxxx.arm_cortex-a9.ipk支持arm A9核心CPU的路由器
openwrt 18.06smartdns.xxxxxxxxx.arm_cortex-a7_neon-vfpv4.ipk支持arm A7核心CPU的路由器
openwrt LUCIluci-app-smartdns.xxxxxxxxx.xxxx.all.ipkopenwrt管理统一界面

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/

下载:下载链接

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


更新日志
【2022/8/6】

  更新内容:  
  功能:
  1. 支持返回多IP地址,优化下载、视频播放体验。  
     第一个IP地址仍然为最快,保证大部分软件体验,并支持设置返回IP个数,参数:max-reply-ip-num(此功能需要开启cache)
  2. 支持读取dnsmasq dhcp文件,解析局域网主机功能,参数:dnsmasq-lease-file [/path/to/lease-file]。
  3. 支持设置首次请求响应模式,参数:response-mode, 值:
     * first-ping:最快ping响应地址模式,DNS上游最快查询时延+ping时延最短,查询等待与链接体验最佳。(当前默认)
     * fastest-ping: 最快IP地址模式,查询到的所有IP地址中ping最短的IP。DNS查询时间最长,IP链接最短。(之前模式)
     * fastest-response: 最快响应的DNS结果,DNS查询等待时间最短。
  4. 支持设置ECS。
  5. speed-mode支持设置三种测速模式,之前版本为两种。
  6. 优化docker镜像大小为3MB。
  7. 双栈优选支持主动优选IPV6地址避免链接V4地址:参数:dualstack-ip-allow-force-AAAA yes。(实验性功能)
  8. 双栈优选支持设置预取周期,参数:serve-expired-prefetch-time [second]
  9. 支持非root模式运行,提升服务安全性,参数:user [username]
  10. 支持缓存除A,AAAA类型的其他结果,如SRV,TXT,NXDOMAIN等。提升查询性能。
  11. 优化并行查询性能,合并同类型查询。
  12. 支持查询smartdns服务的IP地址,用于检测smartdns服务是否正常。如:`dig smartdns`返回路由IP。
  13. 支持自动检测IPV6运行环境,自动开启/关闭IPV6相关功能。
  14. Auditlog支持记录多IP地址。
  15. 支持无PID文件启动smartdns多实例,`-pid -`进程启动参数。
  16. 优化smartdns日志打印,避免无效打印,和收到无效数据包的打印,以及优化配置错误的提示。
  
  BUG修复:
  1. 解决TTL某些场景下不变化的BUG。
  2. 解决IPSET在某些场景下丢失问题。
  3. 解决日志打印引发的进程死锁和IP冲突问题
  4. 解决其他若干crash问题。
  5. 解决华硕路由器中,cache无法持久化的BUG。
  6. 解决openwrt中,提示端口冲突的BUG。
  7. 解决smartdns github版本和debian版本冲突的问题。
  8. 解决双栈优选的一些BUG。
  9. 解决其他crash问题。
  10. 清理代码中潜在的问题。
  11. 避免查询风暴。
  
  注意:
  1. 此版本默认情况下,会启用多IP能力,会出现第一次查询返回一个IP,后面再次查询返回多个IP的情况,属于正常的功能。注意和之前版本区分。
  2. cache建议开启,并保证持久化功能开启,这样才能获得多IP查询能力。
  3. smartdns是否正常,可用`dig smartdns`或`ping smartdns.`检查(注意,windows下后面的.是必须)


【2019/12/15】
  1. GPL V3协议开源。
  2. 解决一些BUG。

【2019/11/2】
  • 支持设置测速模式speed-check-mode功能,可任意选择ping测速或tcp测速。
  • bind支持绑定多个端口,且支持不同端口的请求应用不同的规则。参考bind flags参数。
  • Luci支持第二DNS服务器。
  • TLS校验支持检查主机名,而不需要校验SPKI。
  • 优化prefetch性能。
  • -v参数支持查询版本号。
  • 解决父子规则包含导致规则失效的问题。
  • 解决一些BUG和提高稳定性。


【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系统













P.png

点评

这东西不能解决DNS污染问题吧,只是解析域名后的优选  发表于 2019-12-17 18:46

评分

参与人数 37恩山币 +37 收起 理由
mxyz11 + 1 不要怂、就是干!
snday + 2 建议加入AI算法使它更智能!!!
nee207 + 1 强大的恩山!(以下重复1万次)
myarsenal + 1 强大的恩山!(以下重复1万次)
bingrenyg + 1 强大的恩山!(以下重复1万次)
cll6401 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
kenljj + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
whogh + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
jdpnews + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
lupus721 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
SUCE222 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
米达 -1 严重注意:安装此smartdns后,系统发现非法进程,开始连接境外80端口网站。
lyent2007 + 1 面对这种帖子,我内心复杂,真不知道说什么好……
liyvhg + 1 感谢你的分享,无论怎样,你都是最无私的人!
z1539913331 + 1 真牛逼 我实测成功 打开网页速度真的快了好多!!牛逼!!!必须顶!!!!!!
laimama + 2 最近github下载不了呀!!能给个其它的下载地址吗?
gxminfo2 + 1 强大的恩山!(以下重复1万次)
shimi + 1 移动的福利
kylin2017 + 1 能否编译一份X86的32位的版本
leechaohua + 1 一看就是觉得高端、大气、上档次!
ubridge -1 X86的装都装不上,什么啊!
leeyeung + 1 别说了,打他!!!
upan + 1 面对这种帖子,我内心复杂,真不知道说什么好……
yinhao + 1 强大的恩山!(以下重复1万次)
whoweasn + 2 率全体恩山路由党以及党魁向你学习!
北方困难群众 + 1 率全体恩山路由党以及党魁向你学习!
geekman + 2 率全体恩山路由党以及党魁向你学习!
1324881770 + 1 强大的恩山!(以下重复1万次)
心太高命太薄 + 2 率全体恩山路由党以及党魁向你学习!
simenty + 1 好东西,有高通IPQ40XX的吗&amp;gt;?
edmondw + 1 不要怂、就是干
Windows10 + 1 一看就是觉得高端、大气、上档次!
炽热太阳 -1 网件3800安装不过,可能是我笨了点!
lanren + 1 强大的恩山!(以下重复1万次)
tzxinqing + 2 移动的福利
5112075 + 1 移动的福利
cdnaa + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-22 21:36 | 显示全部楼层
没有x86 64的么

点评

在准备编译环境,后面会有。 你要支持的x86_64的标准Linux,还是x86_64的openwrt?  详情 回复 发表于 2018-7-22 21:39
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2018-7-22 21:39 | 显示全部楼层

在准备编译环境,后面会有。

你要支持的x86_64的标准Linux,还是x86_64的openwrt?

点评

当然openwrt拉  详情 回复 发表于 2018-7-22 21:44
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-22 21:44 | 显示全部楼层
shenmuecn 发表于 2018-7-22 21:39
在准备编译环境,后面会有。

你要支持的x86_64的标准Linux,还是x86_64的openwrt?

当然openwrt拉

点评

编译了x86-64的版本,看看能不能用。  详情 回复 发表于 2018-7-24 09:09
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-22 21:46 来自手机 | 显示全部楼层
看上去很美丽,谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-22 21:47 | 显示全部楼层
6666666666
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-22 22:22 | 显示全部楼层
试试看,如果有效就太棒了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-22 22:49 | 显示全部楼层
x86_64的openwrt,目前双网:电信+联通,策略路由:联通IP走联通,其他电信
dnsmasq.conf里:
all-servers  
server=61.139.2.69
server=119.6.6.6
这2两个电信和联通的DNS ping延迟一样,哪个运营商DNS服务器返回最快流量就跑到哪个运营商线路
楼主这个适合我,空了打算弄下

点评

这个和dnsmaq有什么区别呢?请教下~  详情 回复 发表于 2018-8-4 14:39
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-23 01:08 | 显示全部楼层
和pdnsd好像
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-23 07:26 来自手机 | 显示全部楼层
怎么样呢?老铁们
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-23 09:14 | 显示全部楼层
不晓得效果怎么样,特别是被监控

点评

免费,功能不限制,无后门,如担心,建议不要使用。  详情 回复 发表于 2018-7-23 12:03
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-23 10:18 | 显示全部楼层
期待开源。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-23 10:21 | 显示全部楼层
没开源,不敢用

点评

免费,功能不限制,无后门,暂不开源,如担心,建议不要使用  详情 回复 发表于 2018-7-23 12:06
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-23 10:23 | 显示全部楼层
和china-dns有啥区别

点评

请问china dns可不可以加到老毛子的padavan里呀  详情 回复 发表于 2019-2-3 00:29
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-23 10:25 | 显示全部楼层
期待开源,这个选择方式和dnschooser很像

点评

嗯,看了下dnschooser,确实差不多,这个后面还会增加其他功能的,在规划中。  详情 回复 发表于 2018-7-23 12:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-19 18:36

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表