用 Docker 部署 Mihomo 内核(服务器 / NAS)

服务器、NAS、家庭小主机上想长期跑一个 Clash 服务,Docker 是最干净的方式:环境隔离、升级方便、配置和数据都在挂载目录里一目了然。这篇给一份能跑的 docker-compose,并把目录挂载、端口映射、面板访问这几个关键点讲透。

为什么用 Docker

裸装内核要自己管二进制、开机自启、日志、升级,杂。Docker 把这些收进一个容器:删了重建不留垃圾,升级就是换个镜像 tag,配置全在你挂载的目录里。对"装好就长期不想动"的服务器场景特别合适。

准备配置目录

先在宿主机建一个目录放配置,容器把内核工作目录挂到这里。这样改配置 = 改宿主机文件,不用进容器:

mkdir -p /opt/mihomo
# 把你的配置放进去并命名为 config.yaml
#  - 含 proxies / proxy-groups / rules
#  - external-controller: 0.0.0.0:9090
#  - secret: "一个复杂口令"
ls /opt/mihomo   # 应能看到 config.yaml

配置怎么写见 配置文件结构;用代理集挂订阅,节点会自动更新,服务器场景尤其省心。

docker-compose 示例

宿主机 /opt/mihomo/config.yaml 改这里=改容器配置 挂载 Mihomo 容器 跑内核 :7890 代理 :9090 控制 端口映射 局域网设备/ Web 面板

部署示意图配置挂宿主机目录、端口映射出来,外部即可用代理与面板。

services:
  mihomo:
    image: metacubex/mihomo:latest
    container_name: mihomo
    restart: always
    network_mode: bridge      # 简单场景用 bridge;需透明代理可用 host
    volumes:
      - /opt/mihomo:/root/.config/mihomo
    ports:
      - "7890:7890"           # 混合代理端口
      - "9090:9090"           # 控制面板端口
    cap_add:
      - NET_ADMIN             # 若要在容器内开 TUN 才需要

docker compose up -d 起来后,局域网设备把代理指到 宿主机IP:7890 即可用。端口含义见 端口说明

连面板管理

容器没有图形界面,靠 Web 面板管理:打开 metacubexd/yacd,后端填 http://宿主机IP:9090,secret 填你设的口令,就能切节点、看连接、读日志。改完 config.yaml 在面板里点重载即可生效。

注意事项

  • 安全第一:9090 一旦映射出来就可能被局域网甚至公网访问,必须设强 secret、绝不裸露公网,详见 控制器安全
  • 更新内核:docker compose pull && docker compose up -d 换新镜像即可,配置不丢,对应 内核更新
  • 时间同步:容器/宿主机时间要准,否则节点全挂,见 时间不同步
  • 透明代理需要 host 网络模式和额外的防火墙转发规则,复杂度接近 软路由,按需深入。

桌面用户其实更简单

只是自己用的话,到下载中心装个桌面客户端即可,无需 Docker。

前往 Clash 下载中心
⚠️ 免责声明:本文为开源软件使用教程,本站不提供任何节点、VPN 或机场服务。请遵守所在地区法律法规,合理合法使用网络工具。