Sign inSign up

daitcl/mihomo

By daitcl

•Updated about 2 hours ago

内置 Metacubexd 面板的自用 mihomo

Image
15

50K+

daitcl/mihomo repository overview

⁠
mihomo 镜像

mihomo 是一个基于 Clash 核心的代理工具镜像,集成了 Metacubexd 管理面板,提供强大的代理功能和直观的 Web 管理界面。


⁠📦 构建信息

  • mihomo 核心版本: v1.19.33
  • Metacubexd 面板版本: v1.274.4

⁠🚀 快速上手(30 秒)

  1. 准备订阅链接:从机场/订阅服务商获取订阅 URL(形如 https://example.com/sub?token=xxx)。
  2. 创建网络并运行容器:
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
  1. 访问面板:浏览器打开 http://<服务器IP>:8080,登录后即可切换节点、查看流量。

建议固定版本号使用(如 daitcl/mihomo:v1.19.33),以保证行为可预期。


⁠🔌 环境变量说明

变量默认值说明
SUBSCRIBE_URL(必填)订阅链接,格式 https://...,容器会用它生成 proxy-providers 配置
SUBSCRIBE_NAMEdefault订阅在配置中的名称,建议使用英文字母/数字(不能有空格或特殊字符)
CLASH_SECRET空外部控制器(9090 端口)的访问密钥;设置后访问面板也需要输入
LOG_LEVELinfomihomo 日志级别,可设为 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 数据目录)

⁠🧩 docker-compose.yml 使用方式

⁠方式一:直接用仓库自带的 compose 文件
# 克隆并进入目录
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
⁠方式二:创建你自己的 compose 文件
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 编码。
  • 节点不显示:节点来自订阅,URL 错误或墙外时 proxy-providers 拉取会失败,查看 mihomo 日志确认。
  • TUN 模式:启用 TUN 后,宿主机需 NET_ADMIN 权限并挂载 /dev/net/tun 设备,取消 compose 中注释即可。

仓库地址:https://github.com/daitcl/mihomo⁠

作者:daitcl⁠

项目源码:mihomo⁠ | Metacubexd⁠

⁠📄 许可证

协议:MIT⁠ — 允许任何人自由使用、复制、修改、合并、发布、分发、再授权和/或销售软件的副本,前提是保留原始版权声明和许可声明。

免责声明:软件按“原样”提供,不附带任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由于软件或软件的使用或其他交易引起的。

⁠🔗 来找我
⁠☕ 支持与鼓励

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

  • 爱发电:赞助作者⁠ — 点击链接即可支持 爱发电

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

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

“独行快,众行远。” 感谢你的每一次阅读、点赞和分享。 期待在技术道路上,与你并肩前行。

Tag summary

Content type

Image

Digest

sha256:5a8252346…

Size

53.1 MB

Last updated

about 2 hours ago

docker pull daitcl/mihomo