Hetzner 是性价比最高的 VPS 提供商之一。配合 Docker,可以用约 $5/月的成本在 Hetzner 上运行永久在线的 OpenClaw Gateway,随时随地通过 Telegram/WhatsApp 访问你的 AI 助手。
目标架构
- Hetzner VPS(Ubuntu/Debian)
- Docker 容器化 Gateway
- 持久化状态(重启后数据不丢失)
- SSH 隧道安全访问控制面板
你需要准备
- Hetzner 账号,一台最小规格 VPS
- SSH 访问权限
- AI 模型 API Key(Anthropic 等)
- 可选:WhatsApp QR 码、Telegram Bot Token
- 约 20 分钟
第 1 步:购买并连接 VPS
在 Hetzner 创建一台 Ubuntu 或 Debian VPS(最小规格即可,OpenClaw 对资源要求不高)。
bash
ssh root@你的VPS_IP第 2 步:安装 Docker
bash
apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh
# 验证
docker --version
docker compose version第 3 步:克隆 OpenClaw 仓库
bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw第 4 步:创建持久化目录
Docker 容器是临时的,所有长期状态必须挂载在宿主机上:
bash
mkdir -p /root/.openclaw/workspace
# 设置容器用户权限(uid 1000)
chown -R 1000:1000 /root/.openclaw第 5 步:配置环境变量
在仓库根目录创建 .env 文件:
bash
cat > .env << EOF
OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=$(openssl rand -hex 32)
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
GOG_KEYRING_PASSWORD=$(openssl rand -hex 32)
XDG_CONFIG_HOME=/home/node/.openclaw
EOF
cat .env # 确认内容正确⚠️ 不要将 .env 提交到 Git!
第 6 步:配置 Docker Compose
yaml
# docker-compose.yml
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE}
build: .
restart: unless-stopped
env_file:
- .env
environment:
- HOME=/home/node
- NODE_ENV=production
- TERM=xterm-256color
- OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
- OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
ports:
# 推荐:只绑定本地回环,通过 SSH 隧道访问
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
command:
- "node"
- "dist/index.js"
- "gateway"
- "--bind"
- "${OPENCLAW_GATEWAY_BIND}"
- "--port"
- "${OPENCLAW_GATEWAY_PORT}"
- "--allow-unconfigured"第 7 步:将所需二进制烧入镜像(关键!)
陷阱:在运行中的容器里安装的任何东西,在重启后都会消失。所有 Skills 依赖的外部工具必须在 Dockerfile 构建时安装。
dockerfile
FROM node:22-bookworm
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
# 示例:Gmail CLI
RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog
# 安装 OpenClaw(继承基础镜像)
COPY --from=openclaw:base . .如果后续添加了依赖新二进制的 Skill,必须:
- 更新 Dockerfile
- 重新构建镜像
- 重启容器
第 8 步:构建并启动
bash
./docker-setup.sh或手动执行:
bash
docker build -t openclaw:local -f Dockerfile .
docker compose run --rm openclaw-cli onboard
docker compose up -d openclaw-gateway第 9 步:验证 Gateway
bash
docker compose logs -f openclaw-gateway看到类似 Gateway listening on :18789 即成功。
从本地访问控制面板(SSH 隧道)
bash
# 在本地执行(不是 VPS)
ssh -N -L 18789:127.0.0.1:18789 root@你的VPS_IP然后在浏览器访问 http://127.0.0.1:18789/,粘贴 .env 中的 OPENCLAW_GATEWAY_TOKEN。
持久化验证
什么持久化在哪里:
| 内容 | 位置 |
|---|---|
| 配置文件 | /root/.openclaw/openclaw.json(宿主机) |
| 工作区文件 | /root/.openclaw/workspace(宿主机) |
| 会话记录 | /root/.openclaw/agents/(宿主机) |
| WhatsApp 凭证 | /root/.openclaw/credentials/(宿主机) |
基础设施即代码(Terraform)
OpenClaw 提供了 Terraform 模板,可以一键自动化整个 Hetzner 部署流程。详见官方文档 Infrastructure as Code。
安全提示
- Gateway 端口只绑定
127.0.0.1,通过 SSH 隧道访问(不要暴露公网端口) - 公司共享 Agent 需在同一信任边界内
- 不同用户之间如果存在对抗关系,拆分为独立 VPS
- 详见 Security 和 VPS 托管 文档
原文:Hetzner - OpenClaw | 来源:OpenClaw 官方文档