适用场景
本文介绍如何基于 Docker 部署一套支持认证、规则切换和统一出口的代理服务。
适用于:
- Ubuntu 22.04 / 20.04
- Debian 11/12
- CentOS 7
- Rocky Linux 8/9
- AlmaLinux 8/9
- OpenEuler
- 其他支持 Docker 的 Linux 发行版
本文以 Ubuntu Server 22.04 为例,其它 Linux 发行版仅需根据自身环境调整 Docker 与防火墙安装方式即可。
功能目标
- Docker 容器化部署
- 支持 Clash/Mihomo 订阅
- 支持 HTTP/SOCKS5 代理
- 支持用户名密码认证
- 支持 Rule / Global / Direct 模式切换
- 支持 Web UI 管理
- 支持多个客户端统一接入
- 支持 Docker 容器使用
- 支持 Claude Code、OpenWebUI、CC-Switch 等工具使用
- 配置持久化
- 订阅自动更新
- 节点状态实时查看
- 流量与连接实时监控
架构
1 | |
创建目录
1 | |
目录结构:
1 | |
docker-compose.yml
1 | |
mihomo/config.yaml
1 | |
说明:
secret是 Mihomo 外部控制 API 的管理密钥,用于 MetaCubeXD 等 Web UI 连接9090管理接口。authentication是 HTTP/SOCKS5 代理连接认证,用于客户端访问7890代理端口。- 两者用途不同,建议分别设置不同的强密码。
启动服务
1 | |
检查:
1 | |
配置 MetaCubeXD
访问:
1 | |
填写:
1 | |
连接成功后即可:
- 查看节点
- 切换节点
- 查看连接
- 查看流量
- 查看日志
- 切换代理模式
代理模式
Rule
根据规则自动决定是否走代理。
Global
所有流量全部走代理。
Direct
所有流量全部直连。
推荐:
1 | |
Linux 主机使用代理
HTTP:
1 |
|
SOCKS5:
1 | |
永久生效:
1 | |
Docker 容器使用代理
1 | |
Claude Code 使用代理
1 |
|
验证:
1 | |
OpenWebUI 使用代理
1 | |
验证代理
查看出口 IP:
1 | |
查看出口地区:
1 | |
访问 Google:
1 | |
认证失败验证:
1 | |
应返回:
1 | |
日志查看
实时日志:
1 | |
最近100行:
1 | |
配置持久化
由于已经挂载:
1 | |
以下内容会持久化:
1 | |
包括:
- 节点订阅
- 节点选择
- Fake-IP缓存
- 部分运行状态
防火墙配置
推荐开放:
| 端口 | 用途 | 访问范围 |
|---|---|---|
| 7890 | HTTP/SOCKS5代理 | 客户端 |
| 9999 | MetaCubeXD | 管理网 |
| 9090 | Mihomo API | 管理网 |
UFW 示例:
1 | |
常见问题
301 Moved
1 | |
返回 301 属于 Google 正常跳转。
解决:
1 | |
429 Rate Limit
访问 ipinfo.io 返回 429。
说明代理正常,只是目标网站限流。
407 Proxy Authentication Required
检查:
1 | |
unexpected eof
通常为节点异常或节点失效。
处理方式:
- 切换节点
- 切换 Global 模式测试
- 检查订阅是否正常
最终效果
1 | |
即可为 Linux 主机、Docker 容器、Claude Code、OpenWebUI 等服务统一提供带认证的代理访问能力。