群晖抄作业SmartDNS+AdGuardHome实现安全上网加速与去GG
创作立场声明:我在本文中的应用搭配和设置分别经过了2年时间的家里使用和1年时间的单位部门使用,稳定性与体验非常好,才发出来与大家分享我的配置选项,欢迎收藏、评论。
#我家NAS装了啥#有奖活动正在火热进行中,分享你家NAS装了啥App,赢取TS-453D mini!→戳此了解←
追加修改(2021-07-22 10:02:25):
一、关于ghostry-smartdns的更方便修改配置方法:
1、把ghostry-smartdns容器停止了。
2、打开File Station,在docker文件夹里面新建一个叫smartdns文件夹。
3、回到ghostry-smartdns容器的编辑页面,“储存空间”选项卡,点击“添加文件夹”
4、弹出路径选择对话框,选择我们刚刚新建的smartdns文件夹,“装载路径”输入“/smartdns”。意思就是用docker/smartdns的文件夹映射容器里面的/smartdns文件夹,旧可以方便修改配置文件了。
5、重新启动容器,就会在docker/smartdns的文件夹看到smartdns.conf配置文件,下载修改,再上传覆盖。
6、重新启动容器。
7、ghostry-smartdns容器的版本升级也一样这样设置。
二、关于adguard/adguardhome容器的版本升级
1、和上面一样也是映射文件夹。
2、打开File Station,在docker文件夹里面新建一个叫adguardhome文件夹,再在里面新建“work”、“conf”两个文件夹。
3、回到容器的编辑页面,“储存空间”选项卡,点击“添加文件夹”
4、docker/adguardhome/work装载容器里面的“/opt/adguardhome/work”
5、docker/adguardhome/conf装载容器里面的“/opt/adguardhome/conf”
6、每次adguard/adguardhome有版本更新后,下载新版本映像部署时候,重新装载4、5点的文件夹就可以重用配置了。
前言
SmartDNS 和 AdGuardHome 的教程已经有一大堆了,为什么还要写?先看看我的7天统计,左边是我部署在家里的软路由OpenWrt上的,已经稳定运行2年多,右边是部署在单位部门PVE的Debian里,已经运行1年多了。
intel N3160平均处理时间更快
随便估算一下,每次能节省30ms,380000次大概节省11400秒=3.1小时(不过上网加速主要还是靠SmartDNS)。从拦截率来看广告链接真不少。
SmartDNS 和 AdGuardHome 很多人都会部署,各有各的用法。我的思路主要是SmartDNS用DNS over HTTPS和DNS over TLS作为上游,开启大缓存与专属功能“返回最快IP地址”提高网络访问速度,AdGuardHome(连接上游SmartDNS)主要是去广告,方便加黑白名单。
经过2年时间配置的不断调整,基本符合使用要求,现在把最重要的配置细节分享出来,大家直接抄作业就行了,请收藏、点赞。
因为我经常对主软路由进行系统升级,所以想着把SmartDNS 和 AdGuardHome搬到群晖Docker上去,不用每次升级后都部署一次。如果不用群晖,在其他平台也可以抄配置,一样的
本文是以解决实际问题为导向的教程,所以啰嗦而简洁、直白而简单,适合小白。
群晖安装Docker
安装Docker很简单,过程我就不细述了,张大妈搜一下很多,推荐看第一个
Docker安装SmartDNS
打开Docker在注册表搜索SmartDNS,选择ghostry/smartdns下载。
选latest版本就可以了
等待映像下载完毕,切换到映像标签,选择ghostry/smartdns启动,CPU优先高,高级设置里面的高级设置勾选“启用自动重新启动”。端口设置里面本地端口1053,类型UDP。
待容器启动后,进入smartdns的详情,在终端机里面“通过命令启动”
输入 /bin/sh 确定就进入命令行了。
输入命令对SmartDNS的配置文件进行编辑,进入后按dd将原来的配置全删了。
vi /smartdns/smartdns.conf
按热键帮助Ctrl+A进入前缀模式,按i进入编辑模式,把我的配置Ctrl+V粘贴进去。然后按Esc键退出编辑模式,再按冒号:输入wq保存退出。输入命令cat /smartdns/smartdns.conf看看配置文件是否正确保存下来了。
server-name smartdns
bind [::]:53
cache-size 60000
# enable persist cache when restart
cache-persist yes
# cache persist file
cache-file /smartdns/smartdns.cache
# prefetch domain
prefetch-domain yes
# cache serve expired
# serve-expired [yes|no]
serve-expired yes
# cache serve expired TTL
serve-expired-ttl 172800
# speed check mode
# speed-check-mode [ping|tcp:port|none|,]
# example:
#speed-check-mode ping,tcp:80
# speed-check-mode tcp:443,ping
# speed-check-mode none
rr-ttl-min 600
log-level warn
server 119.29.29.29
server-tls dot.pub
server-https https://doh.pub/dns-query
到此完成了SmartDNS的安装配置。
输入ifconfig,记下inet add地址,等下填到AdGuardHome
输入ifconfig,记下inet add地址,等下填到AdGuardHome
Docker安装AdGuardHome
与安装SmartDNS步骤一样,搜索AdGuardHome,安装adguard/adguardhome,因为我是x86_64平台所以要选最新的v0.107.0-b.4版本才能正常下载安装。
启动设置,CPU优先高,高级设置里面的高级设置勾选“启用自动重新启动”。端口设置里面把其他全部删除,剩下本地端口3000,类型TCP和本地端口53,类型UDP。3000是管理端口,53是DNS的服务端口。
应用启动后就可以用你的群晖ip加端口3000进入AdGuardHome的设置界面了(我的是http://192.168.1.5:3000)
管理端口3000,DNS端口53
认真对照每一项,直接抄
172.17.0.2就是刚刚取得的ghostry/smartdns容器的ip地址。
添加广告过滤,第一个是官方的过滤表,命中率也很高,保留。点击“添加阻止列表”-“从列表中选择”
只选择一个anti-AD列表就够了,不用多选了,并不是越多列表效果越好的,多了各种问题。
列表有时更新不成功,换个时间多点几次试试(第一个我就没更新成功)
4:48更新成功了
测试部署是否成功
命令行测试成功
设置客户端
1、openwrt路由的可以在LAN接口中设置,自动分发到全部客户端
2、Windows设置
最后
有些人说SmartDNS、AdGuardHome分别都可以做到你要的功能,多此一举要部署两个软件。
能做到不代表做得好。SmartDNS的广告拦截就不如AdGuardHome的管理方便,黑白名单也添加删除方便,而且AdGuardHome自带官方的列表(虽然是阉割版)。
AdGuardHome的“返回最快IP地址”功能就是参考SmartDNS的代码的,我刚开始用的时候它是没有这个功能,后来增加的。我认为还是SmartDNS的功能在不断改进,而且它的缓存更灵活。
结论就是我要同时用这两个软件。
收藏、点赞 下篇看群晖开启WireGuard VPN实现客户端轻松回家
iCassius
校验提示文案
小玩物
校验提示文案
达芬奇密码哦
校验提示文案
Ryff5417
校验提示文案
killq
校验提示文案
值友3429899920
校验提示文案
值友1447442790
校验提示文案
另类的水瓶
校验提示文案
IP_man
校验提示文案
矿物质水
校验提示文案
林文默大人
校验提示文案
chouchoufish
校验提示文案
再次被迫改名
校验提示文案
BillGor
校验提示文案
chouchoufish
校验提示文案
VIP_Qi_VIP
校验提示文案
值友3143714339
校验提示文案
爱上虾的鱼
校验提示文案
太湖笑笑生
校验提示文案
camarts
校验提示文案
飞翔企鹅1069
校验提示文案
散琉璃
校验提示文案
值友9880336007
校验提示文案
balence
校验提示文案
rongcc
1、群晖重启后,需要重新设置inet add。解决方案在评论区有:
gunpen:
我尝试了下,删除原来的smartdns容器,重新建立一个,网络选项里勾选左下角的 □使用与Docker Host相同的网络,修改smartdns.conf文件里将原来的 bind [::]:53 改为 bind-tcp [::]:53,AdGuardHome里上游DNS服务器输入:tcp://192.168.1.5 ,(示例为楼主nas主机的IP地址,记得改成自己nas的),经测试上游DNS服务器正常运行。
2、怎么和cfw共存使用
我的措施是开tun mode。tun mode的设置里有dns的选项,填上群晖的ip就可以了。
校验提示文案
西门嗷嗷
校验提示文案
rongcc
校验提示文案
飞酱2735
校验提示文案
PiggerBUG
校验提示文案
jamesbandjava
校验提示文案
zhanghm110
校验提示文案
o康o
校验提示文案
魔鬼顽童
校验提示文案
suco
校验提示文案
ProgPostHead
校验提示文案
值友1990885723
校验提示文案
浮想
校验提示文案
塞北的雪
校验提示文案
FH113
校验提示文案
随便的god
校验提示文案