首页 资讯 下载 教程 Skills 社群

Linux 服务器部署 OpenClaw 生产环境指南

概述

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

此命令会:

  1. 创建 systemd 用户级服务单元
  2. 配置自动启动
  3. 设置日志输出

配置 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/ 目录隔离。