目 录CONTENT

文章目录

软路由docker搭建clash

成培培
2025-01-03 / 0 评论 / 0 点赞 / 47 阅读 / 0 字

需求来源

在软路由上搭建代理服务,实现家里设备科学上网,我试过不少方案,比如软路由上的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,访问可以看到相关节点信息:
https://chengpei.top/upload/clash.png
这样内网设备连接wifi后,在设置里配置好手动代理的IP和端口即可

0

评论区