作者:river_wind
背景介绍
最近在家里的nas上部署了clash+adguard home,可以实现家庭网络中所有设备通过clash网络分流,以及adguard home去广告。 中间踩了很多坑,也发现网上对这种情况的介绍很少,有些文章甚至里面有错误,直接照搬是不行的。


环境介绍
-
群晖nas DSM 7.2
-
docker 任意版本都行
-
docker image
-
adguard/adguardhome: “v0.107.36”
-
dreamacro/clash: “v1.17.0”
-
部署clash
主要配置如下:

这里非常重要的是clash的网络模式一定要用host,如果用bridge的话,后面会形成环状网络导致CPU暴增服务无法使用 将docker容器中的/root/.config/clash映射到文件夹/path你自己新建一个文件夹 然后下载你clash服务提供商提供的yaml配置,这里我贴下我的: !
redir-port: 转发端口,该端口将接受到所有tcp请求,给到clash进行分流处理,这个端口相当于所有请求的入口,后面在配置iptables转发策略时会用到dns: 这里是启用了clash提供的dns服务listen:clash提供的dns服务绑定的端口nameserver:这里非常重要,这里填的是clash的dns服务的上级dns,我们使用adguard home的ip再加上一个公共的dns服务。adguard home的dns服务我们后面配置。
到这里clash就配置完成了,可以启动容器了。
部署adguard home
主要配置如下:

该容器可以使用bridge网络,端口映射的用途:
3000->3000:用于adguard home的前端页面,可以请求宿主机ip:3000访问53->5656:这里将容器里面的53端口映射到宿主机的5656端口,这里提供出来的dns服务IP为宿主机IP:5656,也就是上面clash配置文件中dns的nameserver的配置
文件映射两个路径,一个是配置文件夹,一个是工作文件夹。 这里adguard home就配置完成了,启动容器。
iptables流量转发
这一步是clash+adguard home要结合起来使用最重要的一步,也是网上很多文章都没有讲到的一步。 直接贴相关命令:

执行上面的命令后,所有nas上的配置就完成了,但是这里要注意一下,nas重启后,所有iptables的策略就失效了,这里可以在nas控制面板-计划任务中添加开启启动的任务,执行上面的命令,这样机器重启后就可以生效了。 这里还提供不重启机器去除iptables的策略脚本:

代理配置
非侵入式代理配置
非侵入式配置就是在每台上网设置的网络设置中,将网关和dns都设置为nas的ip

侵入式代理配置
上面这样配置的话,需要所有上网设备上都需要配置一遍,很麻烦,可以直接在路由器上设置网关和dns

配置完成后路由器重启完,就可以安心上网了!
阅读更多网络存储精彩内容,可前往什么值得买查看
发布于:北京
原文链接:https://k.sina.cn/article_1823348853_6cae187502001b068.html