mihomo 是一个基于 Clash 核心的代理工具镜像,集成了 Metacubexd 管理面板,提供强大的代理功能和直观的 Web 管理界面。
v1.19.33v1.274.4https://example.com/sub?token=xxx)。docker network create clash-net
docker run -d --name mihomo --restart always --network clash-net \
-p 7890:7890 -p 7891:7891 -p 7892:7892 -p 7893:7893 -p 7894:7894 \
-p 9090:9090 -p 8080:8080 \
-e SUBSCRIBE_URL="你的订阅链接" \
-e TZ=Asia/Shanghai \
daitcl/mihomo:v1.19.33
http://<服务器IP>:8080,登录后即可切换节点、查看流量。建议固定版本号使用(如
daitcl/mihomo:v1.19.33),以保证行为可预期。
| 变量 | 默认值 | 说明 |
|---|---|---|
SUBSCRIBE_URL | (必填) | 订阅链接,格式 https://...,容器会用它生成 proxy-providers 配置 |
SUBSCRIBE_NAME | default | 订阅在配置中的名称,建议使用英文字母/数字(不能有空格或特殊字符) |
CLASH_SECRET | 空 | 外部控制器(9090 端口)的访问密钥;设置后访问面板也需要输入 |
LOG_LEVEL | info | mihomo 日志级别,可设为 silent 关闭大部分日志 |
TZ(非脚本) | Asia/Shanghai | 时区,供容器内 tzdata 使用 |
# Docker Hub
docker pull daitcl/mihomo:v1.19.33
# GitHub Container Registry
docker pull ghcr.io/daitcl/mihomo:v1.19.33
# 创建容器网络
docker network create clash-net
# 启动容器
docker run -d \
--name mihomo \
--restart always \
--network clash-net \
-p 7890:7890 \
-p 7891:7891 \
-p 7892:7892 \
-p 7893:7893 \
-p 7894:7894 \
-p 9090:9090 \
-p 8080:8080 \
-e TZ=Asia/Shanghai \
-e LOG_LEVEL=silent \
-e CLASH_SECRET="" \
-e SUBSCRIBE_URL="your_subscribe_url" \
-e SUBSCRIBE_NAME="your_subscribe_name" \
-v "$(pwd)/clash-config:/root/.config/mihomo" \
-v "$(pwd)/metacubexd-config:/config/caddy" \
--health-cmd "curl -f http://localhost:9090" \
--health-interval 30s \
--health-timeout 10s \
--health-retries 3 \
daitcl/mihomo:v1.19.33
参数说明:
-p 7890:7890 — HTTP 代理端口-p 7891:7891 — SOCKS5 代理端口-p 7892:7892 — 混合端口(HTTP+SOCKS5)-p 7893:7893 — REDIR 端口-p 7894:7894 — TPROXY 端口-p 9090:9090 — Clash 外部控制 API-p 8080:8080 — Metacubexd Web UI-v $(pwd)/clash-config:/root/.config/mihomo — 持久化 mihomo 配置/订阅(首次为空目录时自动生成 config.yaml)-v $(pwd)/metacubexd-config:/config/caddy — 持久化面板数据(Caddy 数据目录)# 克隆并进入目录
git clone https://github.com/daitcl/mihomo.git
cd mihomo
# 修改 docker-compose.yml 中的 SUBSCRIBE_URL(或复制一份另用)
sed -i 's|your_subscribe_url|你的订阅链接|' docker-compose.yml
# 启动
docker-compose up -d
version: '3.8'
services:
mihomo:
container_name: mihomo
image: daitcl/mihomo:v1.19.33
restart: always
environment:
# 核心配置
- TZ=Asia/Shanghai
- LOG_LEVEL=silent
- CLASH_SECRET=
- SUBSCRIBE_URL=your_subscribe_url
- SUBSCRIBE_NAME=your_subscribe_name
ports:
- "7890:7890" # HTTP代理
- "7891:7891" # SOCKS5代理
- "7892:7892" # 混合代理
- "7893:7893" # TPROXY
- "7894:7894" # REDIR
- "9090:9090" # Clash控制API
- "8080:8080" # Metacubexd Web UI
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9090"]
interval: 30s
timeout: 10s
retries: 3
volumes:
- ./clash-config:/root/.config/mihomo # Clash配置文件目录
- ./metacubexd-config:/config/caddy # Metacubexd配置目录
# - /etc/timezone:/etc/timezone:ro # 共享主机时区
# - /etc/localtime:/etc/localtime:ro
# 如需启用TUN模式,取消以下注释
# cap_add:
# - NET_ADMIN
# devices:
# - /dev/net/tun:/dev/net/tun
networks:
- clash-net
networks:
clash-net:
driver: bridge
若容器网络
clash-net不存在,docker-compose up -d会自动创建(compose 会管理声明的网络)。单独使用docker network create仅用于docker run场景。
config.yaml,或修改 SUBSCRIBE_URL 后重建容器。/root/.config/mihomo 下的 config.yaml(首次由模板生成的)。注意:模板只在配置不存在时生效。docker restart mihomo。8080 端口是否映射,docker logs mihomo 查看 Caddy 日志。SUBSCRIBE_URL 格式(以 https:// 开头),若订阅含特殊字符请 URL 编码。proxy-providers 拉取会失败,查看 mihomo 日志确认。NET_ADMIN 权限并挂载 /dev/net/tun 设备,取消 compose 中注释即可。仓库地址:https://github.com/daitcl/mihomo
作者:daitcl
项目源码:mihomo | Metacubexd
协议:MIT — 允许任何人自由使用、复制、修改、合并、发布、分发、再授权和/或销售软件的副本,前提是保留原始版权声明和许可声明。
免责声明:软件按“原样”提供,不附带任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由于软件或软件的使用或其他交易引起的。

如果代码/容器对你有所启发,或者单纯想请我喝杯咖啡, 可以通过下方的 爱发电 或者 支付宝/微信赞赏码 来支持我创作。 每一份鼓励都是我持续创作的动力。
爱发电:赞助作者 — 点击链接即可支持

支付宝赞赏:扫一扫下方二维码

微信赞赏:扫一扫下方二维码

“独行快,众行远。” 感谢你的每一次阅读、点赞和分享。 期待在技术道路上,与你并肩前行。
Content type
Image
Digest
sha256:5a8252346…
Size
53.1 MB
Last updated
about 2 hours ago
docker pull daitcl/mihomo