概述
Linux 是运行 OpenClaw 的首选平台。本指南将介绍如何在 Linux 服务器上完成生产级别的 OpenClaw 部署,包括 Node.js 环境搭建、守护进程配置、远程访问和 VPS 部署方案。
环境要求
| 项目 | 推荐配置 |
|---|---|
| 操作系统 | Ubuntu 22.04+ / Debian 12+ / CentOS Stream 9 |
| Node.js | 22.x 或更高(推荐,不建议使用 Bun) |
| 内存 | 至少 2GB |
| 磁盘 | 至少 10GB 可用空间 |
重要提示:OpenClaw 推荐使用 Node.js 运行时。虽然 Bun 可以运行部分功能,但在生产环境中可能存在兼容性问题,不建议使用。
安装 Node.js
# 使用 NodeSource 安装 Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证版本
node --version # v22.x.x
npm --version
安装 OpenClaw
可以使用 npm 或 pnpm 全局安装:
# 使用 npm
npm install -g openclaw
# 或使用 pnpm(需先安装 pnpm)
npm install -g pnpm
pnpm install -g openclaw
验证安装:
openclaw --version
初始化配置
openclaw onboard
按照交互式引导选择模型提供者、配置认证信息。完成后会在 ~/.config/openclaw/ 目录下生成配置文件。
安装守护进程
OpenClaw 守护进程负责后台运行网关服务:
openclaw onboard daemon
此命令会:
- 创建 systemd 用户级服务单元
- 配置自动启动
- 设置日志输出
配置 systemd 服务
OpenClaw 使用 systemd 用户级服务(user units),服务文件位于:
~/.config/systemd/user/openclaw-gateway.service
服务文件模板
如果需要自定义服务配置,可以编辑该文件:
[Unit]
Description=OpenClaw Gateway Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/openclaw gateway serve
Restart=on-failure
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=default.target
管理服务
# 启动服务
systemctl --user start openclaw-gateway
# 停止服务
systemctl --user stop openclaw-gateway
# 重启服务
systemctl --user restart openclaw-gateway
# 查看状态
systemctl --user status openclaw-gateway
# 设置开机自启
systemctl --user enable openclaw-gateway
# 查看日志
journalctl --user -u openclaw-gateway -f
启用 lingering
为了让用户级服务在未登录时也能运行,需要启用 lingering:
sudo loginctl enable-linger $USER
远程访问:SSH 隧道
对于安全性要求较高的场景,推荐使用 SSH 隧道而非直接暴露端口:
# 从本地机器连接远程服务器
ssh -L 3000:localhost:3000 user@your-server.com
连接后,在本地浏览器访问 http://localhost:3000 即可使用 OpenClaw 网关。
持久化 SSH 隧道
使用 autossh 保持隧道连接:
sudo apt install autossh
autossh -M 0 -f -N -L 3000:localhost:3000 user@your-server.com
VPS 部署方案
Fly.io 部署
# 安装 flyctl
curl -L https://fly.io/install.sh | sh
# 初始化项目
fly launch --name my-openclaw
# 设置环境变量
fly secrets set ANTHROPIC_API_KEY=sk-ant-xxx
# 部署
fly deploy
Hetzner 云服务器
Hetzner 提供高性价比的欧洲 VPS,适合个人开发者:
# 通过 SSH 连接到 Hetzner 服务器
ssh root@your-hetzner-ip
# 创建非 root 用户
adduser openclaw
usermod -aG sudo openclaw
su - openclaw
# 按照上述标准流程安装
GCP(Google Cloud Platform)
# 创建 Compute Engine 实例
gcloud compute instances create openclaw-server \
--machine-type=e2-medium \
--zone=asia-east1-a \
--image-family=ubuntu-2404-lts-amd64 \
--image-project=ubuntu-os-cloud
# SSH 连接
gcloud compute ssh openclaw-server
健康检查与修复
OpenClaw 内置诊断工具,可以快速检查环境状态:
openclaw doctor
此命令会检查:
- Node.js 版本是否满足要求
- 配置文件是否有效
- 模型提供者连接状态
- 守护进程运行状况
- 端口占用情况
如果发现问题,openclaw doctor 会给出修复建议。常见的自动修复操作包括:
# 修复配置文件
openclaw doctor --fix
# 重置守护进程
openclaw gateway repair
重启策略建议
对于生产环境,建议配置合理的重启策略:
[Service]
Restart=on-failure
RestartSec=10
StartLimitBurst=5
StartLimitIntervalSec=60
这意味着服务失败后等待 10 秒重启,60 秒内最多重启 5 次。超出限制后 systemd 会停止重启尝试,需要手动检查问题。
常见问题
Q:为什么不推荐使用 Bun? Bun 对某些 Node.js API 的兼容性不完整,在 OpenClaw 的一些模块中可能出现异常。生产环境中使用 Node.js 22+ 可以获得最佳稳定性。
Q:服务启动后立即退出怎么办?
查看 journalctl 日志定位原因:journalctl --user -u openclaw-gateway --no-pager -n 50。常见原因包括端口被占用、配置文件错误等。
Q:如何更新 OpenClaw?
运行 npm update -g openclaw 即可。更新后建议重启守护进程:systemctl --user restart openclaw-gateway。
Q:多用户环境下如何隔离?
每个 Linux 用户可以有独立的 OpenClaw 配置和 systemd 用户服务。不同用户的配置文件互不干扰,通过 ~/.config/openclaw/ 目录隔离。