需求来源
在软路由上搭建代理服务,实现家里设备科学上网,我试过不少方案,比如软路由上的Hello World插件、ss插件等等,都没有我想象中好用,而且我也并不希望全局科学上网,希望可以手动设置代理,这样我有代理需求的设备就主动设置下,这样比较可控,因为有次用插件全局代理时,我发现一晚上用掉了好多流量,我都不知道是哪台设备用掉的,于是想找一种适合我的方案
docker搭建clash
最终我选择了在软路由上搭建clash,脚本如下:
docker run -d \
--name clash \
--restart=always \
--log-opt max-size=1m \
-v /etc/clash/config.yaml:/root/.config/clash/config.yaml \
--network docker_vlan --ip 172.20.0.8 \
laoyutang/clash-and-dashboard:latest
用的是laoyutang/clash-and-dashboard
镜像,是在github上找到一个镜像,源码地址:https://github.com/LaoYutang/clash-and-dashboard
将其中的配置文件映射出来了,方便后续更新,这里主要说下倒数第二行,这里指令了一个network以及IP,这样容器每次启动分配到的IP就是一样的,内网设备直接指定IP为172.20.0.8,端口7890就可以使用了
自动更新
写了一个脚本auto_update_clash.sh
:
#!/bin/bash
curl 'https://xxxxxxxxxxxxxxxxxxx' \
-H 'User-Agent: ClashX Pro/1.117.1.1 (com.west2online.ClashXPro; build:1.117.1.1; macOS 10.15.7) Alamofire/5.7.1' \
-o /etc/clash/config.yaml -k
docker restart clash
通过curl指令访问代理订阅地址添加指定的Head就会返回代理配置文件,获取到新的配置文件后,重启服务更新,设置crontab每日执行
0 5 * * * /etc/clash/auto_update_clash.sh
服务启动完成处理代理端口7890,还有一个控制台端口8080,访问可以看到相关节点信息:
这样内网设备连接wifi后,在设置里配置好手动代理的IP和端口即可
评论区