VPS
VPSWOW - 精品VPS良心测评

OpenClaw VPS 部署完整教程

本教程已根据两轮官方文档校对进行修正,覆盖启动命令、onboarding 参数、Telegram pairing 流程、服务管理、Docker 标准流程、systemd linger 等关键细节。所以,我觉得已经蛮完整的了,当然后续可能会视情况继续更改。

2026 校对版 VPS 实战部署 Telegram / Docker / MCP

OpenClaw VPS 部署完整教程

本教程已根据两轮官方文档校对进行修正,覆盖启动命令、onboarding 参数、Telegram pairing 流程、服务管理、Docker 标准流程、systemd linger 等关键细节。所以,我觉得已经蛮完整的了,当然后续可能会视情况继续更改。


零、3 分钟最短速通版(新手先看这里,先跑出来一个大致结果会心理上比较有成就感)

复杂配置可以之后慢慢加,先用这 4 条命令确认 OpenClaw 能在你的服务器上跑起来:

curl -fsSL https://openclaw.ai/install.sh | bash
              openclaw onboard --install-daemon
              openclaw gateway --port 18789
              openclaw dashboard
              

最后一步会打开浏览器控制台。先用浏览器确认 OpenClaw 能正常工作,再去接 Telegram、MCP、Docker 等扩展配置。


一、为什么要部署在 VPS 上?

OpenClaw 是一个运行在自己服务器上的 AI 代理平台,支持通过 Telegram 等消息渠道发送自然语言指令来控制它完成任务——整理邮件、管理代码仓库、自动化工作流等。将它部署在 VPS 而非本地电脑有以下核心优势:

  • 24/7 在线:本地电脑关机代理即失联,VPS 保持持续运行
  • 安全隔离:OpenClaw 拥有对所在机器的完整访问权限,专用 VPS 避免污染个人设备
  • 更低延迟:数据中心带宽和响应速度通常优于家用宽带
  • 团队共享:一台 VPS 可供小团队共用同一个 AI 助手实例

二、硬件配置要求

场景 CPU 内存 硬盘 备注
最低(可能不稳定) 1 vCPU 2 GB 20 GB SSD 仅供测试
推荐(日常使用) 2 vCPU 4 GB 40 GB SSD 生产首选
本地 LLM(Ollama) 6+ vCPU 30 GB+ 80 GB SSD 需 GPU 12GB VRAM

⚠️ 官方文档标注最低 1 GB RAM,但实测安装过程中极易触发内存溢出,强烈建议至少 2 GB,推荐 4 GB。

推荐操作系统:Ubuntu 22.04 LTS 或 24.04 LTS


三、VPS 初始化准备

3.1 连接服务器

ssh root@你的VPS_IP地址
              

3.2 更新系统

apt update && apt upgrade -y
              

3.3 创建专用用户(强烈推荐)

OpenClaw 拥有对运行机器的完整访问权限,不应以 root 身份运行:

# 创建专用用户
              adduser openclaw

              # 赋予 sudo 权限
              usermod -aG sudo openclaw

              # 切换到新用户(后续所有操作均在此用户下执行)
              su - openclaw
              

四、安装 OpenClaw

4.1 确认 Node.js 环境(需要 Node 22+)

安装脚本会尝试自动处理依赖,但手动会更加稳妥一些:

# 安装 Node.js 22.x
              curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
              sudo apt install -y nodejs

              # 验证版本
              node -v   # 应显示 v22.x.x
              npm -v
              

4.2 运行官方安装脚本

curl -fsSL https://openclaw.ai/install.sh | bash
              

官方建议:除非有特殊原因,否则请使用此安装器,不要手动安装。

安装完成后脚本通常会直接进入 Onboarding 向导。若跳过,手动运行下面命令(必须带 --install-daemon 参数,这会一并安装后台守护进程):

openclaw onboard --install-daemon
              

注意!只写 openclaw onboard 不会自动安装守护进程,需要后续单独配置服务。官方推荐始终带 --install-daemon 参数。


五、Onboarding 引导配置详解

步骤 1:安全确认

⚠️  I understand this is powerful and inherently risky. Continue?
              

仔细阅读后选择 Yes。OpenClaw 可以访问你的文件系统和终端,请确保它运行在独立的 VPS 环境中。

步骤 2:选择启动模式

QuickStart / Advanced
              

新手建议选择 QuickStart,快速完成基础配置。

步骤 3:选择 AI 模型提供商

Which provider do you want to use as your default?
              > Anthropic
                OpenAI
                Google Gemini
                Local (Ollama)
                ...
              

默认选择 Anthropic(Claude 系列,太贵了,openclaw运行消耗的token非常之多,不是土豪根本用不起,大家要细细考虑,国外的几个模型都不便宜,言尽于此)。

步骤 4:输入 API Key

Paste your Anthropic API key: sk-ant-xxxxxxxxxxxxx
              

步骤 5:选择默认模型

向导会列出当时可用的模型,以向导实际显示为准,不要照抄网上教程里的具体版本号,那些很容易过时。

步骤 6:配置消息渠道

Which messaging channel do you want to use?
              > Telegram  ← 推荐,国外服务器还是推荐这个,当然钉钉也可以,但是要自己创建一个团队,才能创建钉钉机器人
                WhatsApp
                iMessage
                Skip
              

选择 Telegram 后,系统会引导你填写 Bot Token(创建方式见第十一节)。渠道配置完成后,Telegram 的实际接入还需要一个 pairing(配对) 步骤,详见第十一节。

步骤 7:Shell 补全 & 包管理器

Shell 补全建议选 Yes,包管理器选 npm 即可。


六、启动 Gateway(网关服务)

启动命令为 openclaw gateway --port 18789

6.1 调试用:前台直接启动

测试阶段可以前台运行查看实时日志:

openclaw gateway --port 18789
              

6.2 生产环境:使用官方服务管理命令(推荐)

OpenClaw 提供了内置的服务管理命令,比手写 systemd 文件更规范:

# 将 Gateway 安装为系统服务(开机自启)
              openclaw gateway install

              # 查看服务状态
              openclaw gateway status

              # 重启服务
              openclaw gateway restart

              # 停止服务
              openclaw gateway stop
              

在 Linux 上 openclaw gateway install 默认使用 systemd 用户服务。用户服务有一个非常容易踩的坑:用户退出 SSH 登录后,用户级 systemd 服务默认会停止运行。对于长期运行的 VPS,必须执行下面这条命令:

sudo loginctl enable-linger openclaw
              

这会让 openclaw 用户的 systemd 服务在该用户未登录时也持续保活。这一步不做的话,重启或退出登录后 Gateway 会悄悄停掉,所以openclaw会不回答。

6.3 验证运行状态

# 综合健康检查(安装后第一步就跑这个)
              openclaw doctor

              # 查看运行状态摘要
              openclaw status

              # 查看 Gateway 专项状态
              openclaw gateway status

              # 健康端点检查
              openclaw health
              

七、关键安全配置

7.1 Gateway 绑定本地地址(防止暴露公网)

OpenClaw Gateway 默认绑定到 127.0.0.1(本地回环地址),核心配置项为 gateway.mode=local。用以下命令验证:

openclaw gateway status
              # 确认监听地址为 127.0.0.1:18789 而非 0.0.0.0:18789
              

0.0.0.0:18789 意味着 Gateway 暴露在公网,任何人都可以访问。必须确保是 127.0.0.1

7.2 配置防火墙(UFW)

# 设置默认策略
              sudo ufw default deny incoming
              sudo ufw default allow outgoing

              # 只开放 SSH,并限速防暴力破解
              sudo ufw allow 22/tcp
              sudo ufw limit 22/tcp

              # 如有 Web 服务则开放 80/443
              # sudo ufw allow 80/tcp
              # sudo ufw allow 443/tcp

              # 启用防火墙
              sudo ufw enable

              # 查看规则
              sudo ufw status numbered
              

不要将 18789 端口开放到公网!不要将 18789 端口开放到公网!不要将 18789 端口开放到公网!将所有远程访问应通过 SSH 隧道或 Tailscale 进行。

7.3 通过 SSH 隧道远程访问控制台

本地电脑上运行:

ssh -L 18789:127.0.0.1:18789 openclaw@你的VPS_IP
              

然后在本地浏览器访问:http://127.0.0.1:18789

7.4 Telegram 群组访问收敛

如果你把 Bot 加入了群组,默认行为通常是"仅响应提及(@mention)"。可以通过 channels.telegram.groups 配置项做 allowlist,限制 Bot 只响应指定群组,并要求明确 @mention 才触发。不要一上来就让 Bot 对所有群组消息都响应。


八、Docker 部署方式(可选)

Docker 部署提供更好的环境隔离,迁移也更方便。

8.1 官方推荐流程(从仓库根目录运行)

官方当前推荐的 Docker 方式是在克隆仓库后,从根目录运行官方脚本,它会自动构建镜像、执行 onboarding、启动 compose 并生成 token:

./docker-setup.sh
              

若需要手动执行每一步,官方流程如下:

# 1. 构建本地镜像
              docker build -t openclaw:local -f Dockerfile .

              # 2. 运行 onboarding(交互式,会生成配置)
              docker compose run --rm openclaw-cli onboard

              # 3. 启动 Gateway
              docker compose up -d openclaw-gateway
              

⚠️ 以上命令均需在仓库根目录下执行。onboarding、dashboard token、设备批准等流程都依赖这个标准路径。

8.2 进阶:手动 docker-compose.yml 自定义

如果有特殊需求需要自定义,以下是参考示例。注意这不是官方主推流程,和官方后续文档的服务名、配置项可能存在差异,需要自行对照:

version: "3.8"

              services:
                openclaw:
                  image: ghcr.io/openclaw/openclaw:latest
                  container_name: openclaw-gateway
                  restart: always
                  ports:
                    - "127.0.0.1:18789:18789"  # 只绑定本地,不暴露公网
                  volumes:
                    - ~/openclaw/data:/home/node/.openclaw  # 数据持久化
                  environment:
                    - NODE_ENV=production
                    - OPENCLAW_NO_RESPAWN=1
                    - ANTHROPIC_API_KEY=sk-ant-你的Key
                    - TELEGRAM_BOT_TOKEN=你的BotToken
                  extra_hosts:
                    - "host.docker.internal:host-gateway"  # 容器访问宿主机服务(如 Postgres)
              
# 启动
              cd ~/openclaw
              docker compose up -d

              # 查看日志
              docker compose logs -f

              # 更新
              docker compose pull && docker compose up -d

              # Docker 下打开 dashboard
              docker compose run --rm openclaw-cli dashboard --no-open
              

九、OpenClaw 核心参数配置

运行 openclaw configure 进入交互式配置菜单,以下是关键参数:

参数 说明 推荐值
gateway.mode Gateway 绑定模式 local(绑定 127.0.0.1)
gateway.port 监听端口 18789(默认)
gateway.auth.token Gateway 访问令牌 自动生成,妥善保存
model.default 默认 AI 模型 以向导显示为准,推荐 Sonnet 档
memory.enabled 是否启用长期记忆 true
workspace.path 工作区路径 ~/.openclaw/workspace

十、接入外部 MCP Server(工具扩展)

MCP(Model Context Protocol)是开放协议,允许 AI 助手通过标准接口调用外部工具和数据源。OpenClaw 内置 MCP 客户端支持,配置后 Agent 可以直接发现并调用所有 MCP 工具。

10.1 MCP 工作原理

你(Telegram 消息)
                    ↓
              OpenClaw Agent(理解意图,决定调用哪个工具)
                    ↓
              MCP Client(向对应 Server 发起请求)
                    ↓
              MCP Server(Notion / GitHub / PostgreSQL / 文件系统 ...)
                    ↓
              返回结果给 Agent,Agent 组织成自然语言回复你
              

10.2 配置方式:编辑 openclaw.json

nano ~/.openclaw/openclaw.json
              

配置结构如下(修改后需重启 Gateway 生效):

{
                "mcp": {
                  "servers": {
                    "服务名称": {
                      "command": "npx",
                      "args": ["-y", "包名"],
                      "env": {
                        "API_KEY": "你的Key"
                      },
                      "transport": "stdio"
                    }
                  }
                }
              }
              

配置是严格校验的。 未知字段不会被忽略,而是可能直接导致 Gateway 启动失败。修改后如果无法启动,先运行 openclaw doctor 并用 python3 -m json.tool ~/.openclaw/openclaw.json 检查 JSON 格式。

10.3 常用配置示例

Notion:

{
                "mcp": {
                  "servers": {
                    "notion": {
                      "command": "npx",
                      "args": ["-y", "@notionhq/mcp"],
                      "env": { "NOTION_API_KEY": "secret_xxxx" },
                      "transport": "stdio"
                    }
                  }
                }
              }
              

GitHub:

{
                "mcp": {
                  "servers": {
                    "github": {
                      "command": "npx",
                      "args": ["-y", "@modelcontextprotocol/server-github"],
                      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx" },
                      "transport": "stdio"
                    }
                  }
                }
              }
              

通过命令行添加远程 HTTP MCP Server:

openclaw mcp add \
                --transport http \
                --scope user \
                tavily \
                "https://mcp.tavily.com/mcp/?tavilyApiKey=你的Key"
              

多个 MCP Server 并列配置:

{
                "mcp": {
                  "servers": {
                    "notion": {
                      "command": "npx",
                      "args": ["-y", "@notionhq/mcp"],
                      "env": { "NOTION_API_KEY": "secret_xxxx" },
                      "transport": "stdio"
                    },
                    "github": {
                      "command": "npx",
                      "args": ["-y", "@modelcontextprotocol/server-github"],
                      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx" },
                      "transport": "stdio"
                    },
                    "filesystem": {
                      "command": "npx",
                      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/openclaw/workspace"],
                      "transport": "stdio"
                    }
                  }
                }
              }
              

10.4 Python 实现的 MCP Server(使用 uvx)

部分 MCP Server 是用 Python 编写的,需要用 uvx 而非 npx 运行:

# 先安装 uv(包含 uvx)
              curl -LsSf https://astral.sh/uv/install.sh | sh
              source ~/.bashrc
              
{
                "mcp": {
                  "servers": {
                    "slack": {
                      "command": "uvx",
                      "args": ["mcp-server-slack"],
                      "env": {
                        "SLACK_BOT_TOKEN": "xoxb-你的SlackBotToken",
                        "SLACK_TEAM_ID": "T你的TeamID"
                      },
                      "transport": "stdio"
                    }
                  }
                }
              }
              

10.5 常用 MCP Server 速查表

MCP Server npm 包名 主要功能 所需凭证
Notion @notionhq/mcp 笔记/数据库/页面 NOTION_API_KEY
GitHub @modelcontextprotocol/server-github Issue/PR/代码 GITHUB_PERSONAL_ACCESS_TOKEN
PostgreSQL @modelcontextprotocol/server-postgres SQL 查询 连接字符串
文件系统 @modelcontextprotocol/server-filesystem 读写本地文件 目录路径
Tavily 搜索 tavily-mcp 联网搜索 TAVILY_API_KEY
Slack mcp-server-slack(uvx) 消息/频道管理 SLACK_BOT_TOKEN
SQLite @modelcontextprotocol/server-sqlite 本地 SQLite db 文件路径
Puppeteer @modelcontextprotocol/server-puppeteer 浏览器自动化

更多 MCP Server 可在 github.com/modelcontextprotocol/servers 浏览官方维护列表。

10.6 验证 MCP 连接状态

# 列出所有已注册的 MCP Server 及其状态
              openclaw mcp list

              # 查看某个 Server 提供的工具列表
              openclaw mcp tools notion

              # 实时查看详细日志(排查连接问题)
              openclaw gateway --verbose
              

十一、连接 Telegram 并开始使用

11.1 创建 Telegram Bot

  1. 在 Telegram 中搜索并打开 @BotFather
  2. 发送 /newbot
  3. 输入 Bot 名称(如 My OpenClaw
  4. 输入 Bot 用户名(必须以 bot 结尾,如 myopenclaw_bot
  5. 复制 BotFather 返回的 HTTP API Token,在 Onboarding 向导中粘贴

11.2 Pairing(配对):首次接入的正确流程

Telegram 接入默认采用 pairing 模式,不是直接在聊天里输入 Gateway Token。正确流程如下:

  1. 确保 Gateway 已启动(openclaw gateway status
  2. 在 Telegram 中直接私信你的 Bot,发送任意消息
  3. 系统进入配对等待状态,在服务器端运行以下命令查看待批准的配对码:
openclaw pairing list telegram
              
  1. 找到配对码后批准它:
openclaw pairing approve telegram <CODE>
              

完成后,Telegram 即可正常发送指令给 OpenClaw。

为什么是这个流程? Pairing 模式防止任何人私信你的 Bot 就能控制你的服务器——只有经过服务端手动批准的设备才能接入。这是一个安全设计。

11.3 接入成功后可以做什么

帮我整理一下今天的邮件,把重要的标记出来
              在我的 GitHub 上创建一个新 issue,标题是「修复登录 bug」
              设置一个每周一早上 9 点提醒我查看周报的定时任务
              

十二、日志查看与排障

# 实时跟踪日志(最常用)
              openclaw logs --follow

              # Gateway 详细模式(调试启动问题)
              openclaw gateway --verbose

              # 综合健康检查
              openclaw doctor

              # 运行状态摘要
              openclaw status

              # 健康端点检查
              openclaw health
              

遇到 Gateway 无法启动时,排查顺序:openclaw doctoropenclaw gateway --verbose → 检查 ~/.openclaw/openclaw.json 格式。


十三、升级、备份与回滚

13.1 查看当前版本

openclaw --version
              

13.2 升级前先备份

# 备份整个配置目录(包含 token、MCP 配置、workspace 等)
              cp -r ~/.openclaw ~/.openclaw.bak.$(date +%Y%m%d)
              

13.3 升级

curl -fsSL https://openclaw.ai/install.sh | bash
              

13.4 升级后验证

openclaw doctor
              openclaw status
              openclaw health
              

如果升级后出现问题,将 ~/.openclaw.bak.* 还原,再降级或等待修复版本。


十四、常见问题排查

Q:安装时报内存错误?

sudo fallocate -l 2G /swapfile
              sudo chmod 600 /swapfile
              sudo mkswap /swapfile
              sudo swapon /swapfile
              

Q:Gateway 无法启动?

sudo lsof -i :18789       # 检查端口占用
              openclaw doctor            # 综合诊断
              openclaw gateway --verbose # 详细日志
              python3 -m json.tool ~/.openclaw/openclaw.json  # 检查配置文件格式
              

Q:退出 SSH 后 Gateway 自动停了?

sudo loginctl enable-linger openclaw
              

Q:Telegram Bot 无响应?

openclaw gateway status
              openclaw pairing list telegram
              # 如果有待审批配对码:
              openclaw pairing approve telegram <CODE>
              

Q:MCP Server 显示 error: spawn npx ENOENT

which npx && npx --version
              # 如不可用:
              curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
              sudo apt install -y nodejs
              

Q:修改 openclaw.json 后 Gateway 拒绝启动?

python3 -m json.tool ~/.openclaw/openclaw.json  # 检查 JSON 格式
              openclaw doctor
              

Q:配置修改后 MCP 不生效?

openclaw gateway restart
              

十五、核心命令速查

阶段 命令 说明
安装 curl -fsSL https://openclaw.ai/install.sh \| bash 官方安装脚本
Onboarding openclaw onboard --install-daemon 引导配置 + 安装守护进程
打开控制台 openclaw dashboard 浏览器控制台,先在这确认能跑
健康检查 openclaw doctor 安装后第一步
调试启动 openclaw gateway --port 18789 前台运行查看日志
安装服务 openclaw gateway install 注册为系统服务
保活设置 sudo loginctl enable-linger openclaw 退出登录后服务不停
查看状态 openclaw gateway status 服务运行状态
重启服务 openclaw gateway restart 重启 Gateway
实时日志 openclaw logs --follow 日常运维首选
详细日志 openclaw gateway --verbose 调试启动问题
配置 openclaw configure 交互式配置菜单
Telegram 配对 openclaw pairing list telegram 查看待批准配对码
批准配对 openclaw pairing approve telegram <CODE> 批准 Telegram 接入
MCP 列表 openclaw mcp list 查看已加载 Server
版本查看 openclaw --version 当前版本号

本文基于 OpenClaw 2026.x 版本及两轮官方文档校对修订。如遇版本差异,请以 docs.openclaw.ai 官方文档为准。