0v1.0 · 2026-07-24
内置 Mihomo(VPN梯子) 代理的 Ubuntu 22.04 Docker 镜像,预装 Claude、Codex、Gemini CLI、OpenCode AI Agent 工具。
| 项目 | 规格 |
|---|---|
| 操作系统 | Ubuntu 22.04 |
| GPU | Tesla P40 (24GB) |
| CUDA | 13.0 驱动 / 13.2 Toolkit |
| 内存 | 62 GB |
| 磁盘 | 79 GB (1.1G 已用) |
| AI 工具 | 5 个已安装 |
| 组件 | 版本 | 路径 |
|---|---|---|
| Mihomo (代理) | v1.19.28 | /usr/local/bin/mihomo |
| Python | 3.10.12 (conda py312) | /usr/local/miniconda3/ |
| Node.js | v20.5.0 | /usr/local/bin/node |
| PyTorch | 2.13.0+cu132 | conda py312 |
| JupyterLab | — | :8888 (supervisor) |
| FileBrowser | — | supervisor 管理 |
| SSH | OpenSSH 8.9 | 端口 23 |
注意: 此服务器运行在 Docker 容器中(init: tini),systemd 不可用。服务通过 supervisor 和 rc.local 管理。
ssh -p 23 root@<服务器IP>
SSH 端口为 23,使用 root 账号密码认证。
登录后先确认 Mihomo 是否运行:
ps aux | grep '[/]mihomo'
如果没运行,手动启动:
nohup /usr/local/bin/mihomo -d /etc/mihomo > /tmp/mihomo.log 2>&1 &
如果你不想手动操作,可以使用 AI 助手(如 Claude、ChatGPT、Trae 等)帮你自动完成全部配置。只需复制下面的提示词,填入你的信息,粘贴给 AI 即可。
请帮我在一台 Ubuntu 22.04 服务器上配置 Mihomo 代理并启动:
1. 服务器信息:
- SSH 登录命令:ssh -p 23 root@【换成你的服务器IP】
- 登录密码:【换成你的密码】
2. 我的 Mihomo 配置文件在本地路径:
【换成你的 YAML 文件路径,例如:D:\my-proxy\config.yaml】
3. 请依次完成以下操作:
- 将配置文件上传到服务器的 /etc/mihomo/config.yaml
- 测试配置文件:mihomo -t -d /etc/mihomo
- 启动 Mihomo 代理:nohup /usr/local/bin/mihomo -d /etc/mihomo > /tmp/mihomo.log 2>&1 &
- 验证代理是否生效:curl https://api.ipify.org(出口 IP 应该是代理节点 IP)
4. 注意事项:
- Mihomo 二进制已安装在 /usr/local/bin/mihomo
- 系统没有 systemd,使用 nohup 后台运行
- 代理端口为 7890,环境变量已配置好
- 如果端口被占用,先用 fuser -k 7890/tcp 释放
- SSH 端口是 23,不是默认的 22
【换成你的服务器IP】、【换成你的密码】、【换成你的 YAML 文件路径】 替换为你的实际信息前置条件: 你需要有一个有效的 Mihomo/Clash 配置文件(YAML 格式),其中包含你的代理节点信息。配置文件需命名为
config.yaml。
从你的本地电脑上传配置文件到服务器:
方法一:使用 SCP 上传
scp -P 23 /path/to/your/config.yaml root@<服务器IP>:/etc/mihomo/config.yaml
注意:SCP 端口参数是
-P(大写),不是-p
方法二:使用 SFTP 交互式上传
sftp -P 23 root@<服务器IP>
sftp> put /path/to/config.yaml /etc/mihomo/config.yaml
sftp> exit
方法三:测试配置文件是否正确
mihomo -t -d /etc/mihomo
如果输出 configuration file /etc/mihomo/config.yaml test is successful 则配置正确。
安全提醒:
- 建议保持
allow-lan: false,不要把代理端口暴露到公网- 配置文件中的
mixed-port: 7890不要修改,环境变量已锁定此端口- 规则集(rule-providers)会自动下载到
/etc/mihomo/ruleset/- 确保代理节点的
serverIP 地址写在rules中设为DIRECT,避免代理回环
启动代理
nohup /usr/local/bin/mihomo -d /etc/mihomo > /tmp/mihomo.log 2>&1 &
停止代理
pkill mihomo
强制重启(清理僵尸端口)
fuser -k 7890/tcp 2>/dev/null; pkill -9 mihomo 2>/dev/null; sleep 1
nohup /usr/local/bin/mihomo -d /etc/mihomo > /tmp/mihomo.log 2>&1 &
你也可以使用快捷命令(如果已创建):
proxy-on # 启动
proxy-off # 停止
代理环境变量已全局配置,新 SSH 登录自动生效:
| 变量 | 值 | 说明 |
|---|---|---|
http_proxy | http://127.0.0.1:7890 | HTTP 代理 |
https_proxy | http://127.0.0.1:7890 | HTTPS 代理 |
ALL_PROXY | socks5h://127.0.0.1:7890 | SOCKS5 代理(所有协议) |
no_proxy | localhost,127.0.0.1,10.0.0.0/8,… | 国内/本地 IP 不走代理 |
配置文件位置:
/etc/environment — 系统级全局变量/etc/profile.d/proxy.sh — bash 会话自动加载# 测试出口 IP(应显示代理节点的 IP,而非服务器 IP)
curl https://api.ipify.org
# 测试 Google 连通性
curl -o /dev/null -s -w '%{http_code}\n' https://www.google.com
# 临时绕过代理
curl --noproxy '*' https://api.ipify.org
# 或取消环境变量
unset http_proxy https_proxy ALL_PROXY; your-command; source /etc/profile.d/proxy.sh
| Agent | 版本 | 说明 | 路径 |
|---|---|---|---|
| Claude | v2.1.218 | Anthropic 官方 CLI,支持 Claude Opus/Sonnet 模型交互 | /root/.local/bin/claude |
| Codex | v0.145.0 | OpenAI Codex CLI,编程助手,支持多文件编辑、终端命令 | /root/.local/bin/codex |
| agy | v1.1.6 | Google Antigravity CLI,通过 Antigravity 安装,支持 Gemini 模型 | /root/.local/bin/agy |
| OpenCode | v1.18.4 | 开源 AI 编程助手,支持多种 LLM 后端 | /root/.local/bin/opencode |
| Gemini CLI | v0.52.0 | Google 官方 Gemini CLI,支持 1M 上下文、每日 1000 次免费调用 | /usr/local/bin/gemini |
所有 Agent 命令已加入 PATH,直接运行即可:
claude # 启动 Claude 交互
codex # 启动 Codex 交互
agy # 启动 Antigravity (Gemini) 交互
opencode # 启动 OpenCode 交互
gemini # 启动 Google Gemini CLI 交互
首次使用: 每个 Agent 首次运行时需要配置 API Key 或登录认证。请参考各工具的官方文档完成初始化。
通过 supervisor 管理,监听 0.0.0.0:8888。使用 $JUPYTER_TOKEN 环境变量作为登录密码。
# 查看状态
supervisorctl status jupyterlab
# 重启
supervisorctl restart jupyterlab
Web 文件管理器,通过 supervisor 管理。使用 $JUPYTER_TOKEN 作为 admin 密码。
supervisorctl status filebrowser
Conda 环境 py312 中预装:
| 包 | 版本 |
|---|---|
| torch | 2.13.0+cu132 |
| torchvision | 0.28.0+cu132 |
| numpy | 2.3.5 |
| sympy | 1.14.0 |
| pillow | 12.0.0 |
| triton | 3.7.1 |
| jupyter | 已安装全套 |
# 激活环境
source /usr/local/miniconda3/bin/activate py312
# 验证 CUDA
python -c "import torch; print(torch.cuda.is_available())"
Mihomo 开机自启通过 /etc/rc.local 实现:
#!/bin/bash
/usr/local/bin/mihomo -d /etc/mihomo > /tmp/mihomo.log 2>&1 &
exit 0
Supervisor 管理的服务(JupyterLab、FileBrowser)会自动启动。
检查进程
ps aux | grep '[/]mihomo'
检查日志
tail -30 /tmp/mihomo.log
检查端口
netstat -tlnp | grep 7890
强制重启(见 3.3 节强制重启命令)
| 错误信息 | 原因 | 解决 |
|---|---|---|
address already in use | 端口 7890 被僵尸进程占用 | fuser -k 7890/tcp 后重启 |
can't open cache file: timeout | 缓存文件损坏 | rm -f /etc/mihomo/cache.db 后重启 |
curl: (7) Failed to connect | Mihomo 未运行 | 启动 Mihomo |
| 出口 IP 还是服务器 IP | 环境变量未生效 | source /etc/profile.d/proxy.sh |
# 测试配置语法(不会启动服务)
mihomo -t -d /etc/mihomo
# 查看日志级别
grep log-level /etc/mihomo/config.yaml
# 建议保持在 warning 级别,调试时可临时改为 debug
allow-lan: false 确保只有本机可使用代理config.yaml 文件intervalFROM ubuntu:22.04
# 安装基础依赖
RUN apt-get update && apt-get install -y \
curl wget vim openssh-server supervisor python3 python3-pip nodejs npm
# 复制 Mihomo 二进制
COPY mihomo /usr/local/bin/mihomo
RUN chmod +x /usr/local/bin/mihomo
# 创建配置目录(不包含 config.yaml,由用户上传)
RUN mkdir -p /etc/mihomo/ruleset
# 复制代理环境变量脚本
COPY proxy.sh /etc/profile.d/proxy.sh
RUN echo "http_proxy=http://127.0.0.1:7890" >> /etc/environment && \
echo "https_proxy=http://127.0.0.1:7890" >> /etc/environment && \
echo "ALL_PROXY=socks5h://127.0.0.1:7890" >> /etc/environment
# 复制 rc.local 自启脚本
COPY rc.local /etc/rc.local
RUN chmod +x /etc/rc.local
# 复制 supervisor 配置
COPY supervisord.conf /etc/supervisor/supervisord.conf
# 暴露端口
EXPOSE 23 8888
# 启动
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
# 构建镜像
docker build -t ai-agent-server:latest .
# 运行容器(需要 GPU)
docker run -d \
--gpus all \
--name ai-agent \
-p 23:23 \
-p 8888:8888 \
-e JUPYTER_TOKEN=your-secret-token \
ai-agent-server:latest
用户拿到镜像后只需 3 步:
上传配置
scp -P 23 config.yaml root@<IP>:/etc/mihomo/config.yaml
测试并启动
mihomo -t -d /etc/mihomo
nohup /usr/local/bin/mihomo -d /etc/mihomo > /tmp/mihomo.log 2>&1 &
验证代理
curl https://api.ipify.org
出口 IP 应与代理节点一致即为成功。
AI Agent 服务器镜像部署指南 · 生成于 2026-07-24 · Mihomo v1.19.28
Mihomo GitHub: github.com/MetaCubeX/mihomo · 官方文档: wiki.metacubex.one
