Sign inSign up

micrograils/clash-client

By micrograils

•Updated 16 days ago

一键式 clash-client,开箱即用,内置管理页面

Image
Networking
Developer tools
0

187

micrograils/clash-client repository overview

⁠clash-client Docker 镜像

Docker Image Size Docker Pulls Platforms

本地代理客户端镜像:mihomo(Clash.Meta)内核 + MetaCubeXD 面板,等价于 Clash Verge Rev 的 「内核 + 面板」组合,只是去掉了桌面外壳,跑在容器里。

⁠快速开始

⁠用法一:host 网络(推荐)

容器直接占用宿主网络,起完之后 127.0.0.1:7890 就是本地代理,127.0.0.1:9090/ui 就是面板。

docker run -d --name clash_client \
  --network host \
  -e CLASH_SUB_URL="https://your-subscription-url" \
  -v ./config:/etc/mihomo \
  micrograils/clash-client

想让 TUN 接管全局流量(含 DNS、不放过任何程序):

docker run -d --name clash_client \
  --network host \
  --cap-add NET_ADMIN --device /dev/net/tun \
  -e CLASH_SUB_URL="https://your-subscription-url" \
  -e CLASH_TUN=true \
  -v ./config:/etc/mihomo \
  micrograils/clash-client

不需要 --privileged;只要 NET_ADMIN + /dev/net/tun 两个能力即可。 TUN 模式内核需要改路由表,容器会以 root 运行;非 TUN 模式下会自动降权到 mihomo 用户。

⁠用法二:桥接网络 + 端口映射

容器网络隔离更好,但 TUN 只影响容器内。此时必须 CLASH_ALLOW_LAN=true (否则 mihomo 只绑 127.0.0.1,端口映射收不到流量)。

docker run -d --name clash_client \
  -p 127.0.0.1:7890:7890 \
  -p 127.0.0.1:9090:9090 \
  -e CLASH_ALLOW_LAN=true \
  -e CLASH_SUB_URL="https://your-subscription-url" \
  -v ./config:/etc/mihomo \
  micrograils/clash-client
⁠面板

打开 http://127.0.0.1:9090/ui⁠。若 CLASH_ALLOW_LAN=true 且没设 CLASH_SECRET, entrypoint 会随机生成一个 secret 并打印在容器日志里(docker logs clash_client)。

⁠环境变量

变量默认值说明
CLASH_SUB_URL空订阅地址,启动时拉取并合并;失败只告警不阻断
CLASH_SUB_UAclash.meta拉订阅时的 UA
CLASH_MIXED_PORT7890HTTP + SOCKS5 混合端口
CLASH_CONTROLLER_PORT9090外部控制器 / 面板端口
CLASH_ALLOW_LANfalsefalse 只绑 127.0.0.1;true 绑 0.0.0.0(桥接模式必须为 true)
CLASH_BIND_ADDR由上面推导强制指定监听地址
CLASH_SECRET空RESTful API 密码;allow-lan=true 且留空时自动生成
CLASH_TUNfalsetrue 强制开 TUN;auto 检测到 /dev/net/tun 就开;false 关闭
CLASH_TUN_STACKmixedsystem / gvisor / mixed
CLASH_MODErulerule / global / direct
CLASH_LOG_LEVELinfosilent/error/warning/info/debug
CLASH_IPV6false是否处理 IPv6
CLASH_FORCE_ROOTfalsetrue 时即使不开 TUN 也以 root 运行
CLASH_CONF_DIR/etc/mihomo配置目录(挂卷点)
CLASH_RUN_DIR/run/mihomo生成物目录

⁠数据卷

路径说明
/etc/mihomo配置目录:config.yaml(自己的配置)、merge.yaml(最终覆盖),以及 fake-ip / 选中的节点等持久化数据

⁠配置分层

entrypoint 用 yq 做深度合并,后者覆盖前者(map 逐层合并,数组整体替换):

顺序文件用途
1/etc/mihomo/base.yaml(镜像内置)DNS、profile 等默认值
2订阅内容节点 proxies 与规则
3/etc/mihomo/config.yaml(挂载)你自己维护的完整配置 / 节点
4settings.yaml(entrypoint 生成)端口、控制器、TUN —— 由环境变量决定
5/etc/mihomo/merge.yaml(挂载)最终人工覆盖,改规则/改 DNS 放这里

所以:节点和规则交给订阅或 config.yaml,运行参数交给环境变量,想改什么就写 merge.yaml。

生成后的最终配置在 CLASH_RUN_DIR/config.yaml,启动前会用 mihomo -t 自检,失败会打印配置并退出。

⁠高级用法

  • 规则覆写:挂载 merge.yaml,例如只改规则:
    rules:
      - DOMAIN-SUFFIX,example.com,DIRECT
      - GEOIP,CN,DIRECT
      - MATCH,Proxy
    
  • 本地代理给局域网:CLASH_ALLOW_LAN=true + 宿主防火墙放行 7890,配合 CLASH_SECRET。
  • 当旁路网关:同一台机器上其它设备把网关/DNS 指向本机,配合 TUN 模式使用。
  • 只用内核、用桌面版 Verge 接管:不挂面板也行,把 CLASH_CONTROLLER_PORT 暴露出去, 在 Clash Verge Rev 里填 http://<host>:9090 + secret 即可「外部控制」本容器。
  • 固定 fake-ip / 规则持久化:挂卷 /etc/mihomo,profile.store-selected 已默认开启。

⁠相关链接


维护者文档(架构 / 构建 / 版本管理 / 维护)见 MAINTENANCE.md⁠。

Tag summary

Content type

Image

Digest

sha256:362e2bc8b…

Size

40.9 MB

Last updated

16 days ago

docker pull micrograils/clash-client