📌 本文是「n8n Docker 部署」系列第 三 篇 · 系列目录
概述
当宿主机尚未运行代理服务时,可使用容器化方式快速部署 Mihomo 并为 n8n 提供出站代理能力。
订阅转换与生成配置
在用户主目录准备目录与订阅转换文件:
mkdir -p ~/mihomo && cd ~/mihomo
curl -L -o config.yaml "https://api.v1.mk/sub?target=clash&url=<你的原始订阅链接>"
ls -lh config.yaml # 确认文件尺寸为几 KB 或几十 KB,非 0
如转换文件未包含必要字段,请在 config.yaml 顶部检查或补充:
mixed-port: 7890
allow-lan: true
external-controller: 0.0.0.0:9090
使用 Docker Compose 部署
在 ~/mihomo 目录下创建或追加 docker-compose.yml:
version: '3.8'
services:
mihomo:
image: ghcr.io/MetaCubeX/mihomo:latest
container_name: mihomo
restart: always
ports:
- "7890:7890" # 代理端口
- "9090:9090" # 控制端口(可选)
volumes:
- ./config.yaml:/config.yaml:ro
command: -f /config.yaml
启动并查看日志:
docker-compose up -d
docker-compose logs -f mihomo
日志显示节点可用、端口监听成功,表示代理容器部署完成。
验证与联动
在宿主机验证代理连通性:
curl -I -x http://127.0.0.1:7890 https://example.com
如返回 200,可在 n8n 的 Compose 中设置:
environment:
- N8N_USE_PROXY=true
- HTTP_PROXY=http://172.17.0.1:7890
- HTTPS_PROXY=http://172.17.0.1:7890
- NO_PROXY=localhost,127.0.0.1,<你的服务器IP>,mirror.ccs.tencentyun.com
常见问题
- 配置文件尺寸过小或为 0:确认转换链接有效,确保订阅包含节点
- 端口冲突:修改
ports映射或释放被占用端口 - 连通性失败:宿主机与容器内分别验证,检查变量拼写与订阅有效性