偶然发现原来Docker里面的Clash也能进行全局网络接管,研究了一下,目前网络上的相关文章较少,且有些在实现上有错误。
在浏览器键入服务器地址跟端口号,我这里是输入192.168.199.10:1234,就可以打开dashboard页面
准备好你的配置文件config.yaml,节点和订阅得自己想办法,这里不提供,而且我也不认识毒药是谁。
关于配置文件中的nameserver与fallback的运行与解析机制,详见下方链接。
其中 -v 命令之后的挂载卷映射的左侧原始路径要改成你自己的config.yaml的位置。
如果配置文件设置无误的话clash节点生成器,可以在dashboard页面输入服务器地址与端口clash v1.0,链接到clash进行设置了。
可以终端中输入以下命令,也可以写进.sh脚本,chmod +x 之后执行./xxx.sh。
执行之后可以先采取设置非侵入式网关来测试一下服务器上的clash代理与dns解析是否成功。
路由表每次重新开机之后都会回复为默认值,如果想要将更改的内容持久化,需要借助一个软件包 iptables-persistent 实现。
第一次安装时会问询是否保存当前路由表配置,保存之后每次重启就都可以恢复为保存时的配置。
手动设置需要被接管流量的终端设备的IP地址,将网关地址与DNS服务器地址设置为你部署clash的服务器地址。
登录路由器后台,在内网DHCP配置页面,将网关与DNS服务器都设置为clash服务器的IP地址。
这样设置下,由主路由器分发给所有终端设备clash服务器的地址作为网关与dns解析接口
clash服务器处理完数据包之后发送回主路由器clash节点生成器,,并由主路由器向上送至光猫。
故而理论上所有包括开发板,电视盒之内的能运行Linux系统的设备都可以拿来用。
至于在Docker之外直接在操作系统上部署Clash的文章有很多clashx 设置为系统代理关闭,不过透明代理的部分依旧可以参考我这篇文章。