目 录CONTENT

文章目录

群晖Docker安装Clash并实现自动更新订阅

Oops
2025-08-05 / 0 评论 / 2 点赞 / 176 阅读 / 0 字
温馨提示:
本文最后更新于2025-08-26,若内容或图片失效,请留言反馈。 本站文章部分来源于互联网络,除个人生活记录文档,其余可随意转载

昨晚帮助一个兄弟维护MP的过程中,我发现他一直在使用docker搭建的clash,然后利用环境变量注入到容器从而实现代理,经过排查发现是节点失效。开始时我想简单了,认为换个配置文件的事就行了,但是在更换的过程中出了很多问题,比如编码不兼容、控制面板无法访问、节点规则不识别等等。

今早查阅了一下资料,发现了一些有趣的知识。想着分享出来,给大家玩NAS多一条路,多一个选择,废话不多说,直接开始

原理我也不多解释,直接上配置,大家无脑照抄,我会把重点突出出来。

一、安装Clash和Yacd面板

1.创建目录

打开文件管理器,进入 docker 目录 创建一个文件夹存放clash需要的配置文件,我这里创建名为 clash,这个clash下再创建一个 ui 文件夹,如图

2.新建Clash和Yacd项目

打开Container管理器,项目选项卡,点击新增,如图创建

docker compose文件配置如下

version: '3.8'
services:
  clash:
    image: dreamacro/clash:latest
    container_name: clash
    volumes:
      - /volume1/docker/clash/config.yaml:/root/.config/clash/config.yaml
      - /volume1/docker/clash/ui:/ui # 图形面板目录
#    ports:
#      - "7890:7890"
#      - "7891:7891"
#      - "9090:9090"  
    restart: unless-stopped
    network_mode: "host"

  dashboard:
    image: haishanh/yacd:latest
    container_name: clash-dashboard
    ports:
      - "9070:80" 
    restart: unless-stopped
    network_mode: "bridge"

一路下一步,去掉下图的勾点完成,注意最后先不要启动,因为我们并未添加配置文件

二、拉取并修改配置文件

1.新建脚本

打开文本管理器,新建,写入如图,注意红框链接为自己的订阅地址,保存至之前新建的docker目录下,命名为 reload-clash.sh

注意:一元机场的clash,在订阅地址后添加”&flag=clash”就能下载配置文件,可名称是“一元机场”,也就是中文名字,而且没有后缀。如果订阅地址用浏览器打开不是yml格式,不能使用这个方法,可以尝试在url后面增加参数:?target=clash或者clash=1之类的看看是否能转换出yml数据。如果实在国通订阅地址获取不到配置文件,可以暂时利用win端的clash搞一份出来,修改好上传至clash目录下,命名为config.yaml

# 下载节点配置文件,根据实际的订阅地址填写
wget -O /volume1/docker/clash/config.yaml 'https:XXXXX&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/mihomo/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://192.168.x.x:9090/configs' \
--header 'Content-Type: application/json' \
--data-raw '{"path": "/root/.config/clash/config.yaml"}'

3.创建任务计划

打开控制面板>任务计划>新增,选择root账户,如图

计划可以根据自己的更新需求,一天一次或者三天一次都可以,任务设置如下图,最后保存即可,注意 /volume1/docker/clash/reload-clash.sh 是之前的脚本路径

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

4.运行脚本

我们点击刚刚创建好的任务计划,右键点击运行即可

至于是否成功,到之前创建的clash目录下看是否生成 config.yaml文件即可,可以点开看看是否有节点信息。正常的话就有了。

例如

三、运行clash

回到Container管理器,项目选项卡,点击构建,就会拉取镜像并创建两个容器,如果拉取不到镜像,那就是镜像地址不太行,群里问一问。

启动完毕。

访问:http://<你的nasip>:9070,例如我的就是:http://192.168.31.126:9070/ 添加clash服务的地址

记得打开这个允许局域网使用代理

我们使用代理的话可以这样:

这样:

emby可以神医助手或者添加环境变量,例如:

NO_PROXY 172.17.0.1,127.0.0.1,localhost ##保持默认
ALL_PROXY http://10.0.0.4:10081 ## 更换为自己的http代理
HTTP_PROXY http://10.0.0.4:10081 ##更换为自己的http代理

到此不想写了,差不多了,有问题再问吧。

其他参考教程:https://fugary.com/?p=363

2

评论区