clash国内不走代理
最近在家里的nas上部署了clash+adguard home,可以实现家庭网络中所有设备通过clash网络分流,以及adguard home去广告。 中间踩了很多坑,也发现网上对这种情况的介绍很少,有些文章甚至里面有错误,直接照搬是不行的。
这里非常重要的是clash的网络模式一定要用host,如果用bridge的话,后面会形成环状网络导致CPU暴增服务无法使用将docker容器中的fig/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服务我们后面配置。
文件映射两个路径,一个是配置文件夹,一个是工作文件夹。 这里adguard home就配置完成了,启动容器。
这一步是clash+adguard home要结合起来使用最重要的一步,也是网上很多文章都没有讲到的一步。 直接贴相关命令:
执行上面的命令后,所有nas上的配置就完成了,但是这里要注意一下,nas重启后,所有iptables的策略就失效了,这里可以在nas控制面板-计划任务中添加开启启动的任务,执行上面的命令clash国内不走代理,这样机器重启后就可以生效了。 这里还提供不重启机器去除iptables的策略脚本:
上面这样配置的话,需要所有上网设备上都需要配置一遍,很麻烦,可以直接在路由器上设置网关和dns