【开源自荐】Clash4Docker, Mihomo 佬友的最爱,它来了

河北彩伽 2026-04-08 22:54 1

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出




项目地址




Clash for Docker介绍


^-^ 基于最新 Mihomo 内核,内置 Dashboard 的 Clash Docker 镜像


核心特性



  • ^-^ Mihomo (Clash Meta)最新内核

  • ^-^ MetacubexD Web Dashboard 内置

  • ^-^ 预打包 GeoIP 数据库,无需运行时下载

  • ^-^ 支持 amd64 / arm64 架构

  • ^-^ 订阅功能:支持远程订阅链接自动下载配置

  • ^-^ 自动更新:支持定时自动更新订阅并重启生效

  • ^-^ 容错处理:订阅下载失败时自动回退到本地配置


支持的协议




















































协议 说明
Shadowsocks (SS) 经典轻量级加密代理
VMess V2Ray 原生协议
VLESS V2Ray 轻量协议,性能更优
Trojan 基于 TLS 的隐蔽协议
Hysteria 基于 QUIC 的高速协议
Hysteria2 Hysteria 第二代,更快更稳
TUIC 基于 QUIC 的多路复用协议
WireGuard 现代化 VPN 协议
HTTP HTTP/HTTPS 代理
SOCKS5 通用 SOCKS5 代理

快速开始


Clash for Docker 支持两种使用模式:订阅模式(推荐)和本地配置模式


模式一:订阅模式(推荐)


自动从订阅链接下载配置,支持定时更新,无需手动维护配置文件。


Docker Run


docker run -d \
--name glash \
--restart unless-stopped \
-p 7890:7890 \
-p 7891:7891 \
-p 9090:9090 \
-v /path/to/config:/root/.config/mihomo \
-e SUB_URL=https://your-subscription-url.com/config \
-e SUB_CRON="0 */6 * * *" \
-e SECRET=your-dashboard-password \
-e ALLOW_LAN=true \
gangz1o/glash:latest

Docker Compose


services:
glash:
image: gangz1o/glash:latest
container_name: glash
restart: always
ports:
- '7890:7890' # HTTP 代理
- '7891:7891' # SOCKS5 代理
- '9090:9090' # Dashboard
volumes:
- ./config:/root/.config/mihomo
environment:
- TZ=Asia/Shanghai
- SUB_URL=https://your-subscription-url.com/config
- SUB_CRON=0 */6 * * *
- SECRET=your-dashboard-password
- ALLOW_LAN=true

模式二:本地配置模式


使用本地 config.yaml 配置文件,适合手动管理配置的用户。


Docker Run


docker run -d \
--name glash \
--restart always \
-p 7890:7890 \
-p 7891:7891 \
-p 9090:9090 \
-v /path/to/config.yaml:/root/.config/mihomo/config.yaml:ro \
gangz1o/glash:latest

Docker Compose


services:
glash:
image: gangz1o/glash:latest
container_name: glash
restart: always
ports:
- '7890:7890' # HTTP 代理
- '7891:7891' # SOCKS5 代理
- '9090:9090' # Dashboard
volumes:
- ./config.yaml:/root/.config/mihomo/config.yaml:ro
environment:
- TZ=Asia/Shanghai
- ALLOW_LAN=true

模式三:TUN 模式


TUN 模式可接管系统全局流量,无需手动配置代理。设置 TUN_ENABLED=true 后,每次重启均自动恢复 TUN 状态,无需手动在 Dashboard 中开启。



^-^ 注意:TUN 模式需要容器具有 NET_ADMIN 能力和 /dev/net/tun 设备,请勿在不受信任的环境中使用。



Docker Run


docker run -d \
--name glash \
--restart unless-stopped \
--cap-add NET_ADMIN \
--device /dev/net/tun:/dev/net/tun \
-p 7890:7890 \
-p 7891:7891 \
-p 9090:9090 \
-v /path/to/config:/root/.config/mihomo \
-e SUB_URL=https://your-subscription-url.com/config \
-e TUN_ENABLED=true \
gangz1o/glash:latest

Docker Compose


services:
glash:
image: gangz1o/glash:latest
container_name: glash
restart: unless-stopped
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- '7890:7890'
- '7891:7891'
- '9090:9090'
volumes:
- ./config:/root/.config/mihomo
environment:
- TZ=Asia/Shanghai
- SUB_URL=https://your-subscription-url.com/config
- TUN_ENABLED=true

指定架构下载


默认自动匹配当前平台,如需指定架构:


# x86_64 / amd64
docker pull --platform linux/amd64 gangz1o/glash:latest

# ARM64 (Apple Silicon / ARM 服务器)
docker pull --platform linux/arm64 gangz1o/glash:latest


工作逻辑




  1. 启动时(本地有配置)



    • 先用本地配置启动 mihomo

    • 等待代理服务就绪后,通过本地代理 (127.0.0.1:7890) 更新订阅

    • 更新成功后自动重启生效




  2. 启动时(本地无配置)



    • 先尝试直连下载订阅

    • 直连失败时,如果设置了 DOWNLOAD_PROXY,使用外部代理下载

    • 下载成功后启动 mihomo




  3. 定时更新



    • 如果设置了 SUB_CRON,按照 cron 表达式定时更新

    • 通过本地代理下载订阅

    • 更新成功后自动重启 mihomo 生效

    • 更新失败时保持当前配置运行




  4. SECRET 注入



    • 如果设置了 SECRET,会自动写入配置文件的 secret 字段

    • 方便统一管理 Dashboard 密码




  5. ALLOW_LAN 注入



    • 如果设置了 ALLOW_LAN,会自动写入配置文件的 allow-lan 字段

    • 设置为 true 允许局域网连接,false 禁止




  6. TUN_ENABLED 注入



    • 如果设置了 TUN_ENABLED=true,每次启动和订阅更新后自动向配置写入 TUN 模式配置段

    • 解决了通过 Dashboard UI 开启 TUN 后重启丢失状态的问题

    • 需要同时在 docker-compose.yml 中开启 NET_ADMIN 权限和 /dev/net/tun 设备





提示:如果订阅地址需要代理访问且本地没有配置文件,请设置 DOWNLOAD_PROXY 指向一个可用的代理。



常用 Cron 表达式
































表达式 说明
0 */6 * * * 每 6 小时更新
0 0 * * * 每天凌晨更新
0 */12 * * * 每 12 小时更新
*/30 * * * * 每 30 分钟更新
0 8 * * * 每天早上 8 点更新

查看订阅更新日志


docker exec glash cat /var/log/subscription.log

^-^ 配置要求


你的 config.yaml 必须包含以下配置才能正常使用 Dashboard:


# 允许外部访问 API
external-controller: 0.0.0.0:9090
或者是
external-controller::9090
# 密钥(用于登录dashboard ,可不填,建议填上,提高安全性)
secret: ''

端口说明




























端口 用途
7890 HTTP 代理
7891 SOCKS5 代理
7892 混合代理 (HTTP + SOCKS5)
9090 RESTful API & Dashboard

Dashboard 访问


启动后访问:http://127.0.0.1:9090/ui/


首次访问需要配置:



  • 后端地址:http://127.0.0.1:9090

  • 密钥:与 config.yaml 中的 secret 一致


配置示例


port: 7890
socks-port: 7891
allow-lan: true
mode: rule
log-level: info

# Dashboard 必需配置
external-controller: 0.0.0.0:9090

proxies:
- name: '节点名称'
type: vmess
server: example.com
port: 443
uuid: your-uuid
# ... 其他配置

proxy-groups:
- name: '🚀 节点选择'
type: select
proxies:
- 节点名称

rules:
- GEOIP,CN,DIRECT
- MATCH,🚀 节点选择

界面一览











贡献与支持


如果你有好的需求或者发现了一些Bug, 欢迎PR,一起共建开源生态


一些可用docker加速源


https://docker.1ms.run
https://docker.kejilion.pro
https://docker-registry.nmqu.com
https://docker.xuanyuan.me
https://dockerproxy.net
https://hub.rat.dev
https://hub1.nat.tf
https://hub2.nat.tf
https://hub3.nat.tf
https://hub4.nat.tf
https://mirror.iscas.ac.cn
https://docker.hpcloud.cloud
https://docker.apiba.cn

版本信息



  • Mihomo: v1.19.22

  • MetacubexD: v1.244.2

  • 架构: linux/amd64, linux/arm64

最新回复 (19)
  • killer 04-08 23:04
    2

    只有终端,不用docker还有什么方案吗?

  • admin2 04-08 23:23
    3

    没有桌面版吗,windows版有吗,exe文件

  • 河北彩伽 楼主 04-08 23:24
    4

    桌面版不是有 Clash Verge 吗 我这个只是 Docker 的,部署在 NAS 或者软路由上用的

  • Joel Stodolski 04-08 23:28
    5

    有没有用上的佬友说说内存、cpu 占用情况?

  • 大黄蜂 04-08 23:30
    6

    这个好,作者用心了,收藏起来,以后肯定有机会用到

  • 河北彩伽 楼主 04-08 23:30
    7

    基本不占用,可以给你看下我的 NAS 上面部署的内存占用

  • Joel Stodolski 04-08 23:38
    8

    跑请求的时候用到的资源不一样吧?有尝试过跑满去检测吗。主要是我现在用的是 sing-box,相对比一下

  • 河北彩伽 楼主 04-08 23:47
    9

    一样啊 不占用内存,你自己试一下就知道了,我后台一直在刷新中

  • Joel Stodolski 04-08 23:48
    10

    晚点试试吧。sing-box 的话请求一大资源占用就上去了。

  • upright6775 04-09 08:52
    11

    感谢大佬,以后电脑可以不用装clash客户端了,直接用nas上的

  • 河北彩伽 楼主 04-09 11:27
    12

    哈哈,可以的,放家里当个旁路由不错的。^-^

  • killer 04-12 17:46
    13

    请问我想添加规则让域名直连,应该怎么做呢?直接修改config.yml重启容器就被更新的订阅覆盖掉了

  • yuiashiki 04-12 20:01
    14

    这个感觉是真不错呀,正需要呢,在找docker部署web端控制的,真棒

  • 河北彩伽 楼主 04-12 20:59
    15

    这个如果是机场的订阅就没办法了,不过你可以试着用 substore 自己制定规则这样就不会覆盖了

  • xuansy0127 04-29 15:47
    16

    如果支持多个轮询就好了 多个配置进行可以管理就好了

  • Joel Stodolski 05-06 14:36
    17

    为什么我运行起来内存占用这么多的。同样用 sing-box 的话会低很多

  • Juan Pujol 05-07 12:47
    18

    Mihomo



    好项目

    之前有一个Mihomo的docker,但是比较久远了

    关于

    自动从订阅链接下载配置,支持定时更新,无需手动维护配置文件


    自动下载config是在什么地址,我想看看你配置的config文件

  • 河北彩伽 楼主 05-07 13:06
    19

    就是你的订阅地址呀(°∀°)ノ 看内容的话直接粘贴到浏览器地址栏访问

  • shall mas 05-07 13:07
    20

    还是不太理解docker版的用意,旁路由?

* 帖子来源Linux.do
返回