当前位置:首页 > NAS

群晖Docker搭建Clash并自动更新订阅

Yuki2026-06-05NAS4

准备Clash配置文件


新增一个config.yaml文件,需要上传到群晖的/docker/clash/config.yaml

*这个yaml文件可以从本地电脑的Clash中提取出来,只能用config.yaml不能用config.yml

# HTTP 代理端口

port: 7890


# SOCKS5 代理端口

socks-port: 7891


# 混合代理端口

mixed-port: 7890


# Linux 和 macOS 的 redir 代理端口 (如需使用此功能,请取消注释)

redir-port: 7892


# 开启局域网代理,这个要配置true

allow-lan: true


# 规则模式:Global(全局代理)/ Rule(规则) / Script(腳本) / Direct(全局直连)

mode: Rule


#UI监听端口,可以改成0.0.0.0:9090,改后可以通过ui界面访问

external-controller: 0.0.0.0:9090

# 您可以将静态网页资源(如 clash-dashboard)放置在一个目录中,clash 将会服务于 `${API}/ui`

# 参数应填写配置目录的相对路径或绝对路径。


Docker安装Clash镜像


进入群晖Docker套件,搜素clash,下载dreamacro/clash


配置Clash容器

开始配置Clash容器,点击【启动】

配置端口:

7890/tcp——自定义端口

7891/tcp——自定义端口

9090/tcp——自定义端口


映射配置文件:

/volume1/docker/clash/config.yaml:/root/.config/clash/config.yaml


配置完成


使用UI界面


在线版UI界面:http://yacd.haishan.me/ 

输入对应的地址即可,比如本地的:http://192.168.31.126:9090


安装UI容器

进入群晖Docker套件,搜素haishanh/yacd下载安装


配置端口:

80/tcp——自定义端口


启动

  1. 浏览器输入群晖IP地址+8081 例如: http://192.168.1.2:8081

  2. url 输入 群晖IP地址,端口改成9090即可 例如: http://192.168.1.2:9090

  3. 点击 add 底部会出现一个 http://192.168.1.2:9090 点击访问


自动更新


目前这种操作方式不能自动更新代理,可以考虑使用定时任务来更新,编写定时任务脚本,并存放到/docker/clash/reload-clash.sh:

注意:如果订阅地址用浏览器打开不是yml格式,不能使用这个方法,可以尝试在url后面增加参数:?target=clash或clash=1或flag=clash之类的看看是否能转换出yml数据。

# 下载节点配置文件,根据实际的订阅地址填写
curl -o /volume1/docker/clash/config.yaml "https://xxxxxx"# external-controller地址为0.0.0.0:9090,
方便UI访问(可选)
sed -i 's/127.0.0.1:9090/0.0.0.0:9090/g' /volume1/docker/clash/config.yaml
#增加安全性,配置使用代理的用户名和密码(可选)
sed -i 's/allow-lan: true/allow-lan: true\r\nauthentication:\r\n - "user1:password1"\r\n - "user2:password2"/g' /volume1/docker/clash/config.yaml
# 重启 clash 容器,名字为实际的容器名字
docker container restart dreamarco-clash1

配置定时任务

【控制面板】->【任务计划】:


新增一个任务,【用户定义的脚本】任务,并配置名称等


配置运行频率:每日


配置运行脚本

bash /volume1/docker/clash/reload-clash.sh:


配置完成


新自动刷新

运行发现,重启Docker方式刷新并不是很好,参考了API文档,发现可以用另外的方式更新:

https://clash.gitbook.io/doc/restful-api/config

文件路径:/docker/clash/reload-clash.sh

实际配置到【任务计划】中需要全路径bash /volume1/docker/clash/reload-clash.sh:

# 下载节点配置文件,根据实际的订阅地址填写
curl -o /volume1/docker/clash/config.yaml "https://xxxxxx?token=xxxx&flag=clash" 
# external-controller地址为0.0.0.0:9090,方便UI访问(可选)
sed -i 's/127.0.0.1:9090/0.0.0.0:9090/g' /volume1/docker/clash/config.yaml
# 增加安全性,配置使用代理的用户名和密码(可选)
sed -i 's/allow-lan: true/allow-lan: true\r\nauthentication:\r\n - "user1:password1"\r\n - "user2:password2"/g' /volume1/docker/clash/config.yaml
# 去掉重启Docker,调用API刷新:
curl --location --request PUT 'http://localhost:9090/configs' \
--header 'Content-Type: application/json' \
--data-raw '{"path": "/root/.config/clash/config.yaml"}'


扫描二维码推送至手机访问。

版权声明:本文由发布,如需转载请注明出处。

本文链接:http://tamako.cn:8003/?id=58

分享给朋友:

“群晖Docker搭建Clash并自动更新订阅” 的相关文章

解决z-blog后台Javascript加载失败弹窗

解决z-blog后台Javascript加载失败弹窗

出现上述弹窗原因是使用外部链接出现(比如我的就是使用ddnsto后出现,内网无此问题)解决也很简单…

黑群晖显示真正CPU信息

黑群晖显示真正CPU信息

1.将ch_cpuinfo及LANG.txt上传到文件夹中…