实战

OpenClaw 部署到 Hetzner VPS:$5/月跑全天候 AI 助手的完整操作手册

OpenClaw 部署到 Hetzner VPS 完整操作手册:约 $5/月实现全天候 AI 助手在线。涵盖 Docker 安装、持久化目录配置、.env 环境变量设置、Docker Compose 配置、将依赖二进制烧入镜像的关键技巧,以及 SSH 隧道安全访问控制面板。

2026/3/14分钟 阅读ClaudeEagle

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,必须:

  1. 更新 Dockerfile
  2. 重新构建镜像
  3. 重启容器

第 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
  • 详见 SecurityVPS 托管 文档

原文:Hetzner - OpenClaw | 来源:OpenClaw 官方文档

相关文章推荐

实战OpenClaw 日志与健康检查完全指南:监控、告警与运维自动化OpenClaw 日志系统(Logging)与健康检查(Health Check)完整教程:日志级别配置(debug/info/warn/error)和日志格式(text/json)、日志文件持久化路径配置、按渠道/Agent/Provider 过滤日志、Health Check HTTP 端点(/health)的使用(状态码/响应格式)、用于容器编排的 liveness/readiness 探针配置、Gateway Doctor 命令的详细输出解读、集成 Prometheus 指标导出(/metrics 端点)、Grafana Dashboard 可视化,以及生产环境的日志轮转和告警配置方案。2026/3/25实战OpenClaw 代理配置完全指南:SOCKS5/HTTP 代理接入 Claude API 解决网络限制OpenClaw 网络代理(Proxy)配置完整教程:为什么需要代理(大陆访问 Anthropic/OpenAI API 被限制)、SOCKS5 代理配置方式(proxy.socks5/proxy.url)、HTTP/HTTPS 代理配置、代理认证(带用户名密码的代理)、按 Provider 单独配置代理(Anthropic 用代理、国内模型不走代理)、Clash/V2Ray/Xray 等代理工具与 OpenClaw 的对接方式、代理连通性测试方法,以及常见代理问题排障(SSL证书错误/超时/认证失败)。2026/3/25实战OpenClaw 密钥管理完全指南:API Key 安全存储、环境变量与 Vault 集成OpenClaw 密钥(Secrets)管理完整教程:密钥存储的三种方式对比(配置文件明文/环境变量/外部 Vault)、openclaw secrets set/get/list 命令使用、环境变量在配置中的引用语法(${ENV_VAR})、与系统 Keychain 集成(macOS Keychain/Linux Secret Service)、1Password CLI 和 HashiCorp Vault 接入方案、密钥轮换的操作流程、防止密钥泄露的检查(避免 git commit 含密钥)、以及密钥的最小权限原则(每个渠道用独立的 Token)。2026/3/25实战OpenClaw 渠道排障完全指南:消息收不到、Bot 不回复的系统性诊断方法OpenClaw 渠道故障系统性诊断教程:openclaw doctor 一键诊断命令的输出解读、最常见的 5 类问题(Bot Token 无效/Webhook URL 不可达/DM 配对未完成/网络防火墙拦截/配置格式错误)及对应修复步骤、各主要渠道的专项排障(Telegram 403/WhatsApp QR 失效/Slack 事件订阅未开启/Discord 权限不足/Matrix E2EE 设备未验证)、Gateway 日志的关键字段解读、常见错误码含义(401/403/409/429/503),以及在 Discord 社区获取技术支持的途径。2026/3/25实战OpenClaw 费用控制完全指南:Token 限制、Rate Limit 与 API 成本优化实践OpenClaw API 费用控制完整教程:每请求/每日 Token 上限配置(maxTokensPerRequest/maxTokensPerDay)、Rate Limit 限流防刷设置、每日美元预算告警(budgetAlert)、模型降级策略(高峰期自动切 Haiku 降成本)、Prompt Caching 开启减少重复 Token 消耗、各模型每百万 Token 价格对比表、Ollama 本地模型 0 成本方案,以及监控 Token 用量的 Dashboard 和日志方法。2026/3/25实战OpenClaw 与 Claude Code 协同使用实战:AI 聊天助手 + AI 编程助手的终极组合OpenClaw 与 Claude Code 协同使用的完整实战指南:两款工具的定位差异(OpenClaw=聊天AI助手框架,Claude Code=代码库直接操作的编程工具)、在 OpenClaw 中通过 exec 工具调用 Claude Code CLI(claude 命令)执行编程任务、把 OpenClaw 的 Telegram 消息转化为 Claude Code 任务(用自然语言描述→Claude Code执行→返回结果)、使用 OpenClaw Cron 定期触发 Claude Code 执行代码审查/依赖更新/测试/文档生成、CRS 代理在两者中的统一接入方案,以及常见的协同架构模式(主动触发/被动响应/定时执行)。2026/3/24