deploy-ai-agent-on-hetzner-vps

title: "在 Hetzner VPS 上部署 AI 智能体:2026 完整指南" description: "2026 年在 Hetzner VPS 上部署自托管 AI 智能体的完整步骤:套餐选型、防火墙加固、Docker Compose、Telegram 接入,以及凌晨三点最容易出问题的地方。" date: 2026-06-08 author: "Hermify Team" tags: ["AI Agents", "Hetzner", "Self-hosting", "Docker"] coverImage: "cover.jpg" socialImage: "og.jpg" coverAlt: "暗色调服务器机架,绿色状态指示灯亮起,画面文字为"Hetzner AI Agent""
为什么 Hetzner 是自托管智能体的首选
如果你在 dev.to、Medium 或独立 AI Telegram 群组里逛过,一定见过同样的模式:每当有人问"哪里能用两杯咖啡的价钱跑一个长期在线的 AI 智能体",答案几乎都是 Hetzner Cloud。社区选择它的理由多年来始终如一:每欧元对应的真实 CPU 性能,以及在服务器启动之前就能配置好的简洁 Cloud Firewall。
本指南面向已经决定自托管 AI 智能体的读者(Hermes Agent、OpenClaw、带 LLM 节点的 n8n,或任何从长期运行的服务器调用模型 API 的工具),并希望在 Hetzner 上完成部署,同时不跳过那些凌晨三点才会暴露问题的关键步骤。内容涵盖套餐选型、服务器加固、Docker Compose、Telegram 频道测试,以及一份诚实的"早晚会出问题"清单。
如果你还在挑选便宜 VPS,可以先看我们的便宜 VPS 横向评测,那篇文章覆盖了更广泛的选择。本文默认你已经选定了 Hetzner。
第一步:选择合适的套餐
截至 2026 年中,Hetzner Cloud 的共享 vCPU 套餐分三条产品线:
- CX(Intel) — 老款 Intel 共享 vCPU,部分地区正在淘汰
- CPX(AMD EPYC) — 当前 x86 默认选择,单线程性能最强
- CAX(ARM Ampere) — 价格最低,每欧元性能表现极强
对于 API 驱动的 AI 智能体(调用 OpenAI、Anthropic、OpenRouter 或自己的 Ollama 实例,并在本地编排工具调用),各产品线中最小的套餐就够用了:
| 套餐 | vCPU | 内存 | NVMe | 欧洲价格 | 备注 |
|---|---|---|---|---|---|
| CAX11(ARM) | 2 | 4 GB | 40 GB | ~€3.79/月 | 最便宜的可用选项 |
| CX22(Intel) | 2 | 4 GB | 40 GB | ~€3.79/月 | 部分地区即将停售 |
| CPX11(AMD) | 2 | 2 GB | 40 GB | ~€4.59/月 | 最佳单线程 x86 |
| CPX21(AMD) | 3 | 4 GB | 80 GB | ~€7.55/月 | 适合多智能体或浏览器工具 |
美国地区价格略高(同等 CX22 规格约 $4.59–$4.99)。Hetzner 于 2026 年 6 月 15 日调整了价格——新订单使用新费率,已有服务器保留旧费率直到重新扩缩容。
建议:从 CAX11 或 CX22 起步。2 vCPU + 4 GB 内存足以运行一个智能体、一个 Telegram 网关、一个轻量反向代理和 Docker 守护进程,偶尔的无头浏览器任务也能应对。如果你计划运行多个智能体、用 Playwright 抓页面,或在夜间批量执行技能,可以升级到 CPX21。
如果你的智能体运行时暂未提供 ARM 镜像,请留在 CX22 或 CPX11。目前主流运行时(Hermes Agent、OpenClaw、n8n)均已提供 linux/arm64 镜像,因此 CAX 产品线通常可以直接使用。
第二步:在 SSH 连接前完成服务器配置与安全加固
这一步是最常被跳过的,也是最容易在深夜出问题的地方。Hetzner 提供两层防火墙(边缘级 Cloud Firewall 和主机级 UFW),两层都要用。Cloud Firewall 应在服务器启动前配置完毕,确保服务器从未在非预期端口上接受过任何数据包。
在 Hetzner 控制台中创建 Cloud Firewall,配置以下入站规则:
- TCP 22 仅允许你的 IP(或固定办公网段的小 CIDR)
- TCP 80 允许
0.0.0.0/0, ::/0(仅当此服务器运行反向代理时) - TCP 443 允许
0.0.0.0/0, ::/0(仅当需要 HTTPS 用于 Webhook 或 Web UI 时) - ICMP 允许
0.0.0.0/0, ::/0(使ping可用于监控)
出站:保持默认的"全部放行"——智能体需要访问模型 API。
创建服务器时绑定防火墙,操作系统选择 Ubuntu 24.04 LTS。在 SSH 密钥面板中添加你笔记本的公钥,禁止密码登录。

服务器启动后,以 root 身份 SSH 登录,立即执行以下四项操作:
# 1. 更新补丁
apt update && apt upgrade -y && apt install -y ufw fail2ban unattended-upgrades
# 2. 创建非 root 用户
adduser --disabled-password --gecos "" agent
usermod -aG sudo agent
mkdir -p /home/agent/.ssh && cp ~/.ssh/authorized_keys /home/agent/.ssh/
chown -R agent:agent /home/agent/.ssh && chmod 600 /home/agent/.ssh/authorized_keys
# 3. 加固 SSH
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh
# 4. 主机防火墙(UFW),与 Cloud Firewall 冗余,但是有效的安全兜底
ufw default deny incoming && ufw default allow outgoing
ufw allow OpenSSH && ufw allow 80/tcp && ufw allow 443/tcp
ufw --force enable
然后启用自动安全更新和 fail2ban 的默认配置:
dpkg-reconfigure -plow unattended-upgrades # answer Yes
systemctl enable --now fail2ban
fail2ban 默认会在 10 分钟内 5 次 SSH 登录失败后封禁对应 IP。Cloud Firewall 已在边缘拦截了大部分攻击,fail2ban 则负责处理漏网之鱼(同事、配置有误的 CI runner,或者你自己)。
退出 root,以 agent 身份重新登录,后续操作均在该账户下进行。
第三步:安装 Docker
在 2026 年,Docker 是在 VPS 上运行 AI 智能体最简洁的方式。智能体保持隔离,依赖不会污染宿主机,更新只需一条 pull && up 命令。
# 以 agent 用户身份,通过 sudo 执行
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker agent
newgrp docker
docker run --rm hello-world
如果 hello-world 输出正常,Docker 即可使用。
第四步:用 Docker Compose 部署智能体
在服务器上创建 ~/agent/docker-compose.yml。以下示例针对 Hermes Agent,但结构对 OpenClaw、Open WebUI + LLM 服务商,或任何其他容器化智能体运行时同样适用。
services:
agent:
image: ghcr.io/your-runtime/agent:latest
container_name: agent
restart: unless-stopped
env_file: .env
volumes:
- ./data:/data
- ./skills:/skills
- ./memory:/memory
ports:
- "127.0.0.1:8080:8080" # web UI bound to localhost only
然后创建 ~/agent/.env:
# 模型服务商(BYOK - 自带 API 密钥)
OPENAI_API_KEY=sk-...
# 或以下任一:
# ANTHROPIC_API_KEY=...
# OPENROUTER_API_KEY=...
# 消息网关
TELEGRAM_BOT_TOKEN=...
TELEGRAM_ALLOWED_USERS=12345678 # your Telegram user ID
# 持久化
DATA_DIR=/data
MEMORY_DIR=/memory
执行 chmod 600 .env 防止同机其他用户读取你的密钥,然后启动服务:
docker compose up -d
docker compose logs -f agent
restart: unless-stopped 策略确保智能体在服务器重启后自动恢复运行。如果你倾向于原生安装而非 Docker,等效方案是创建一个配置了 Restart=always 和 WantedBy=multi-user.target 的 systemd 单元。
第五步:接入 Telegram 并测试
如果你选择了 Telegram 作为消息入口(大多数自托管用户的选择,因为 Bot API 免费且响应即时),测试流程很简单:
- 在 Telegram 上与 @BotFather 对话,运行
/newbot,将 token 保存到.env。 - 与 @userinfobot 对话获取你的 Telegram 数字用户 ID,填入
TELEGRAM_ALLOWED_USERS。 - 执行
docker compose restart agent。 - 在 Telegram 中打开你的新机器人,发送"hello"。
几秒内你应该收到回复。如果没有,docker compose logs -f agent 通常能直接指出问题所在(token 缺失、用户 ID 错误、模型服务商返回 401)。
关于 Telegram 接入的深度教程(群组、话题、语音模式、故障排查),请参阅如何在 Telegram 上构建 AI 智能体。

第六步:备份与监控(最容易被跳过的部分)
两项低成本措施,在第一次出问题时就能证明其价值:
- Hetzner 快照:在控制台中为服务器启用每日快照。约 €0.012/GB/月,40 GB 磁盘大约 €0.50/月。在每次执行
docker compose pull前打一个"before-update"标签的快照。 - 可用性监控:BetterStack 或 UptimeRobot 均有免费方案。每 5 分钟检测一次
https://your-domain/health(或 TCP 检查)。凌晨三点 Telegram 网关断连时,你能在午饭前收到通知,而不是吃午饭时才发现。
对于智能体自身的状态(记忆文件、技能、对话历史),添加一行 cron 任务,将挂载卷打包为 /var/backups/agent-$(date +%F).tar.gz 并轮转旧备份。每周用 rsync 将其同步到第二台便宜 VPS、S3 兼容存储桶,或你的本地电脑。
第七步:更新
每周,在快照已经做好的前提下执行:
cd ~/agent
docker compose pull
docker compose up -d
docker image prune -f
整个过程通常不到一分钟。如果新镜像有问题,从 Hetzner 控制台恢复快照即可——唯一会丢失的是快照到当前时刻之间的对话记录,这些数据存储在智能体的内存卷中。
迟早会遇到的问题
一份简短而诚实的清单:
- Telegram 长轮询在网络抖动时断开。 大多数运行时会自动重连,但如果你的不会,可用性监控就派上用场了。
docker compose pull带来了破坏性配置变更。 在生产环境中将镜像标签固定到具体版本,而非:latest。- 模型服务商触发限流,智能体停止响应且无明显报错。务必记录服务商返回的 HTTP 状态码,并优先选择提供用量控制台的服务商。
- 磁盘被写满,因为某个技能向
/tmp写入文件但没有轮转清理。du -sh /*和docker system df应该成为你调试时的肌肉记忆。 - 添加新服务时忘记更新防火墙规则。 Cloud Firewall 和 UFW 两层都需要开放新端口,否则你会花 20 分钟调试来自正确地址的"连接被拒绝"问题。
以上这些都不是 Hetzner 独有的问题,而是自己运维任何服务都要付出的代价。
当 VPS 的账单逻辑不再成立
如果你读到这里,觉得上面的步骤很有趣——太好了,这正是 Hetzner 擅长的工作流。价格实惠、性能稳定、透明可控。
如果这些步骤听起来更像是"用周末换来的麻烦",那么对比的天平就会倾斜。托管服务用 €4/月和一个周日换来的是:Telegram 网关已内置、BYOK 对接你的服务商、持久化记忆卷、快照备份,以及"稳定在线"的承诺。我们的托管 vs 自托管指南详细梳理了完整的成本账,包括你的时间值多少钱。
如果你想走托管路线,立即注册 Hermify——30 分钟内即可在生产级基础设施上运行一个智能体,无需配置 Cloud Firewall,无需调试 fail2ban。如果你更愿意在 Hetzner 上自己动手,本指南已经帮你把路铺好了。
来源
- Hetzner Cloud Pricing 2026 - bestusavps.com
- Hetzner Price Adjustment - Hetzner Docs
- Hetzner Data Center Locations - Hetzner Docs
- Basic Cloud Config - Hetzner Community
- Running an AI Agent on a VPS: Security-First Setup - Medium / Tim Daniel Walter
- How to Deploy an AI Agent to Production - Paxrel
- Running AI Coding Agents on Hetzner - Pere Villega