在 Ubuntu 上快速部署 OpenClaw 完整教程

在 Ubuntu 上快速部署 OpenClaw 完整教程

文章目录

在 Ubuntu 上部署 OpenClaw 完整教程

本文记录我在 Ubuntu 22.04 服务器上从零部署 OpenClaw 并接入飞书的完整过程,包括遇到的坑和解决方法。

环境信息

  • 系统: Ubuntu 22.04 LTS
  • 配置: 4核 8GB 内存,100M 带宽
  • 类型 CPU

一、安装依赖

1.1 更新系统包索引

sudoapt update 

1.2 安装 curl

sudoaptinstall-ycurl

1.3 通过 NodeSource 安装最新稳定 LTS 版本

# 添加 NodeSource 仓库并安装curl-fsSL https://deb.nodesource.com/setup_lts.x |sudo-Ebash - sudoapt-getinstall-y nodejs # 安装完成后,验证版本node-vnpm-v

实际输出:

ubuntu@gt-ubuntu22-04-cmd-v3-0-8gb-100m:~$ node-v v24.14.0 ubuntu@gt-ubuntu22-04-cmd-v3-0-8gb-100m:~$ npm-v11.9.0 

1.4 设置淘宝镜像(最常用)

npm config set registry https://registry.npmmirror.com # 查询是否配置成功npm config get registry 

验证输出:

ubuntu@gt-ubuntu22-04-cmd-v3-0-8gb-100m:~$ npm config get registry https://registry.npmmirror.com 

二、安装 OpenClaw

执行安装脚本(注意:安装过程中要勾选 yes):

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

完整安装日志:

 ubuntu@gt-ubuntu22-04-cmd-v3-0-8gb-100m:~$ curl-fsSL https://openclaw.ai/install.sh |bash 🦞 OpenClaw Installer The only crab in your contacts you actually want to hear from. 🦞 ✓ Detected: linux Install plan OS: linux Install method: npm Requested version: latest [1/3] Preparing environment ✓ Node.js v24.14.0 found · Active Node.js: v24.14.0 (/usr/bin/node) · Active npm: 11.9.0 (/usr/bin/npm)[2/3] Installing OpenClaw ✓ Git already installed · Configuring npmfor user-local installs ✓ npm configured for user installs · Installing OpenClaw v2026.2.26 ✓ OpenClaw npm package installed ✓ OpenClaw installed [3/3] Finalizing setup !PATH missing npm global bin dir: /home/ubuntu/.npm-global/bin This can make openclaw show as "command not found"in new terminals. Fix (zsh: ~/.zshrc, bash: ~/.bashrc): exportPATH="/home/ubuntu/.npm-global/bin:$PATH" 🦞 OpenClaw installed successfully (2026.2.26)! All done! I promise to only judge your code a little bit. · Starting setup 🦞 OpenClaw 2026.2.26 (bc50708) — Ship fast, log faster. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██ ██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██ ██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 🦞 OPENCLAW 🦞 ┌ OpenClaw onboarding │ ◇ Security ─────────────────────────────────────────────────────────────────────────────────╮ │ │ │ Security warning — please read. │ │ │ │ OpenClaw is a hobby project and still in beta. Expect sharp edges. │ │ By default, OpenClaw is a personal agent: one trusted operator boundary. │ │ This bot can read files and run actions if tools are enabled. │ │ A bad prompt can trick it into doing unsafe things. │ │ │ │ OpenClaw is not a hostile multi-tenant boundary by default. │ │ If multiple users can message one tool-enabled agent, they share that delegated tool │ │ authority. │ │ │ │ If you’re not comfortable with security hardening and access control, don’t run │ │ OpenClaw. │ │ Ask someone experienced to help before enabling tools or exposing it to the internet. │ │ │ │ Recommended baseline: │ │ - Pairing/allowlists + mention gating. │ │ - Multi-user/shared inbox: split trust boundaries (separate gateway/credentials, ideally │ │ separate OS users/hosts). │ │ - Sandbox + least-privilege tools. │ │ - Shared inboxes: isolate DM sessions (`session.dmScope: per-channel-peer`) and keep │ │ tool access minimal. │ │ - Keep secrets out of the agent’s reachable filesystem. │ │ - Use the strongest available model for any bot with tools or untrusted inboxes. │ │ │ │ Run regularly: │ │ openclaw security audit --deep │ │ openclaw security audit --fix │ │ │ │ Must read: https://docs.openclaw.ai/gateway/security │ │ │ ├────────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue? │ Yes │ ◇ Onboarding mode │ QuickStart │ ◇ QuickStart ─────────────────────────╮ │ │ │ Gateway port: 18789 │ │ Gateway bind: Loopback (127.0.0.1) │ │ Gateway auth: Token (default) │ │ Tailscale exposure: Off │ │ Direct to chat channels. │ │ │ ├──────────────────────────────────────╯ │ ◇ Model/auth provider │ Z.AI │ ◇ Z.AI auth method │ CN │ ◇ How do you want to provide this API key? │ Paste API key now │ ◇ Enter Z.AI API key │ xxx.xxxx │ ◇ Model configured ───────────────╮ │ │ │ Default model set to zai/glm-5 │ │ │ ├──────────────────────────────────╯ │ ◇ Default model │ zai/glm-4.7 │ ◇ Channel status ────────────────────────────╮ │ │ │ Telegram: needs token │ │ WhatsApp (default): not linked │ │ Discord: needs token │ │ Slack: needs tokens │ │ Signal: needs setup │ │ signal-cli: missing (signal-cli) │ │ iMessage: needs setup │ │ imsg: missing (imsg) │ │ IRC: not configured │ │ Google Chat: not configured │ │ Feishu: install plugin to enable │ │ Google Chat: install plugin to enable │ │ Nostr: install plugin to enable │ │ Microsoft Teams: install plugin to enable │ │ Mattermost: install plugin to enable │ │ Nextcloud Talk: install plugin to enable │ │ Matrix: install plugin to enable │ │ BlueBubbles: install plugin to enable │ │ LINE: install plugin to enable │ │ Zalo: install plugin to enable │ │ Zalo Personal: install plugin to enable │ │ Synology Chat: install plugin to enable │ │ Tlon: install plugin to enable │ │ │ ├─────────────────────────────────────────────╯ │ ◇ How channels work ───────────────────────────────────────────────────────────────────────╮ │ │ │ DM security: default is pairing; unknown DMs get a pairing code. │ │ Approve with: openclaw pairing approve <channel><code> │ │ Public DMs require dmPolicy="open" + allowFrom=["*"]. │ │ Multi-user DMs: run: openclaw config set session.dmScope "per-channel-peer"(or │ │ "per-account-channel-peer"for multi-account channels) to isolate sessions. │ │ Docs: channels/pairing │ │ │ │ Telegram: simplest way to get started — register a bot with @BotFather and get going. │ │ WhatsApp: works with your own number; recommend a separate phone + eSIM. │ │ Discord: very well supported right now. │ │ IRC: classic IRC networks with DM/channel routing and pairing controls. │ │ Google Chat: Google Workspace Chat app with HTTP webhook. │ │ Slack: supported (Socket Mode). │ │ Signal: signal-cli linked device;more setup (David Reagans: "Hop on Discord."). │ │ iMessage: this is still a work in progress. │ │ Feishu: 飞书/Lark enterprise messaging with doc/wiki/drive tools. │ │ Nostr: Decentralized protocol; encrypted DMs via NIP-04. │ │ Microsoft Teams: Bot Framework; enterprise support. │ │ Mattermost: self-hosted Slack-style chat;install the plugin to enable. │ │ Nextcloud Talk: Self-hosted chat via Nextcloud Talk webhook bots. │ │ Matrix: open protocol;install the plugin to enable. │ │ BlueBubbles: iMessage via the BlueBubbles mac app + REST API. │ │ LINE: LINE Messaging API bot for Japan/Taiwan/Thailand markets. │ │ Zalo: Vietnam-focused messaging platform with Bot API. │ │ Zalo Personal: Zalo personal account via QR code login. │ │ Synology Chat: Connect your Synology NAS Chat to OpenClaw with full agent capabilities. │ │ Tlon: decentralized messaging on Urbit;install the plugin to enable. │ │ │ ├───────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Select channel (QuickStart) │ Skip for now Updated ~/.openclaw/openclaw.json Workspace OK: ~/.openclaw/workspace Sessions OK: ~/.openclaw/agents/main/sessions │ ◇ Skills status ─────────────╮ │ │ │ Eligible: 4 │ │ Missing requirements: 40 │ │ Unsupported on this OS: 7 │ │ Blocked by allowlist: 0 │ │ │ ├─────────────────────────────╯ │ ◇ Configure skills now? (recommended) │ No │ ◇ Hooks ──────────────────────────────────────────────────────────────────╮ │ │ │ Hooks let you automate actions when agent commands are issued. │ │ Example: Save session context to memory when you issue /new or /reset. │ │ │ │ Learn more: https://docs.openclaw.ai/automation/hooks │ │ │ ├──────────────────────────────────────────────────────────────────────────╯ │ ◇ Enable hooks? │ Skip for now Config overwrite: /home/ubuntu/.openclaw/openclaw.json (sha256 f763f7d577aba2ed75a863a91e3e9a116eab6ecc856e7731972988b006426453 -> 8eac9ee80087618bf88b5f7a2f1f6bdb4b5abf5dfa646c22bf65f64e92063204, backup=/home/ubuntu/.openclaw/openclaw.json.bak) │ ◇ Systemd ────────────────────────────────────────────────────────────────────────────────╮ │ │ │ Linux installs use a systemd user service by default. Without lingering, systemd stops │ │ the user session on logout/idle and kills the Gateway. │ │ Enabling lingering now (may require sudo; writes /var/lib/systemd/linger). │ │ │ ├──────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Systemd ───────────────────────────────╮ │ │ │ Enabled systemd lingering for ubuntu. │ │ │ ├─────────────────────────────────────────╯ │ ◇ Gateway service runtime ────────────────────────────────────────────╮ │ │ │ QuickStart uses Node for the Gateway service(stable + supported). │ │ │ ├──────────────────────────────────────────────────────────────────────╯ │ ◐ Installing Gateway service… Installed systemd service: /home/ubuntu/.config/systemd/user/openclaw-gateway.service ◇ Gateway service installed. │ ◇ Agents: main (default) Heartbeat interval: 30m (main) Session store (main): /home/ubuntu/.openclaw/agents/main/sessions/sessions.json (0 entries) │ ◇ Optional apps ────────────────────────╮ │ │ │ Add nodes for extra features: │ │ - macOS app (system + notifications) │ │ - iOS app (camera/canvas) │ │ - Android app (camera/canvas) │ │ │ ├────────────────────────────────────────╯ │ ◇ Control UI ─────────────────────────────────────────────────────────────────────╮ │ │ │ Web UI: http://127.0.0.1:18789/ │ │ Web UI (with token): │ │ http://127.0.0.1:18789/#token=2962e8f5116c63d86ea9c8224bc8d6445cce2e806ed1e183 │ │ Gateway WS: ws://127.0.0.1:18789 │ │ Gateway: reachable │ │ Docs: https://docs.openclaw.ai/web/control-ui │ │ │ ├──────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Start TUI (best option!) ─────────────────────────────────╮ │ │ │ This is the defining action that makes your agent you. │ │ Please take your time. │ │ The more you tell it, the better the experience will be. │ │ We will send: "Wake up, my friend!" │ │ │ ├────────────────────────────────────────────────────────────╯ │ ◇ Token ─────────────────────────────────────────────────────────────────────────────────╮ │ │ │ Gateway token: shared auth for the Gateway + Control UI. │ │ Stored in: ~/.openclaw/openclaw.json (gateway.auth.token) or OPENCLAW_GATEWAY_TOKEN. │ │ View token: openclaw config get gateway.auth.token │ │ Generate token: openclaw doctor --generate-gateway-token │ │ Web UI stores a copy in this browser's localStorage (openclaw.control.settings.v1). │ │ Open the dashboard anytime: openclaw dashboard --no-open │ │ If prompted: paste the token into Control UI settings (or use the tokenized dashboard │ │ URL). │ │ │ ├─────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ How do you want to hatch your bot? │ Open the Web UI │ ◇ Dashboard ready ────────────────────────────────────────────────────────────────╮ │ │ │ Dashboard link(with token): │ │ http://127.0.0.1:18789/#token=2962e8f5116c63d86ea9c8224bc8d6445cce2e806ed1e183 │ │ Copy/paste this URL in a browser on this machine to control OpenClaw. │ │ No GUI detected. Open from your computer: │ │ ssh-N-L18789:127.0.0.1:18789 [email protected] │ │ Then open: │ │ http://localhost:18789/ │ │ http://localhost:18789/#token=2962e8f5116c63d86ea9c8224bc8d6445cce2e806ed1e183 │ │ Docs: │ │ https://docs.openclaw.ai/gateway/remote │ │ https://docs.openclaw.ai/web/control-ui │ │ │ ├──────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Workspace backup ────────────────────────────────────────╮ │ │ │ Back up your agent workspace. │ │ Docs: https://docs.openclaw.ai/concepts/agent-workspace │ │ │ ├───────────────────────────────────────────────────────────╯ │ ◇ Security ──────────────────────────────────────────────────────╮ │ │ │ Running agents on your computer is risky — harden your setup: │ │ https://docs.openclaw.ai/security │ │ │ ├─────────────────────────────────────────────────────────────────╯ │ ◇ Shell completion ────────────────────────────────────────────────────────╮ │ │ │ Shell completion installed. Restart your shell or run: source ~/.bashrc │ │ │ ├───────────────────────────────────────────────────────────────────────────╯ │ ◇ Web search (optional) ─────────────────────────────────────────────────────────────────╮ │ │ │ If you want your agent to be able to search the web, you’ll need an API key. │ │ │ │ OpenClaw uses Brave Search for the `web_search` tool. Without a Brave Search API key, │ │ web search won’t work. │ │ │ │ Set it up interactively: │ │ - Run: openclaw configure --section web │ │ - Enable web_search and paste your Brave Search API key │ │ │ │ Alternative: set BRAVE_API_KEY in the Gateway environment (no config changes). │ │ Docs: https://docs.openclaw.ai/tools/web │ │ │ ├─────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ What now ─────────────────────────────────────────────────────────────╮ │ │ │ What now: https://openclaw.ai/showcase ("What People Are Building"). │ │ │ ├────────────────────────────────────────────────────────────────────────╯ │ └ Onboarding complete. Use the dashboard link above to control OpenClaw. ubuntu@gt-ubuntu22-04-cmd-v3-0-8gb-100m:~$ 

三、解决 PATH 问题

安装完成后,如果执行 which openclaw 找不到命令,需要手动配置 PATH:

# 检查 openclaw 是否在 PATH 中which openclaw # 如果找不到,查看 npm 全局安装目录npm prefix -g# 查看当前 shellecho$SHELL# 如果输出 /bin/bash,使用 ~/.bashrc# 如果输出 /bin/zsh,使用 ~/.zshrc# 将 npm 全局 bin 目录添加到 PATHecho'export PATH="$(npm prefix -g)/bin:$PATH"'>> ~/.bashrc # 重新加载配置文件source ~/.bashrc # 验证添加是否成功echo$PATH|grepnpm

四、访问控制界面

4.1 本地ssh连接服务器

在本地电脑执行,按提示输入远程linux云主机密码即可:

ssh-N-L18789:127.0.0.1:18789 ubuntu@你的云主机IP 
在这里插入图片描述

4.2 访问openclaw web ui

携带部署过程中生成的Dashboard link在本地进行访问,如下图:

http://localhost:18789/#token=你的token
在这里插入图片描述

4.3 测试

  1. 询问背后模型,如下图告知是glm4.7,与配置的一致

给AI助手起名为“大衍AI”,如下图,可切换界面等待其生效

在这里插入图片描述


在这里插入图片描述

五、总结

本文详细记录了在 Ubuntu 22.04 服务器上从零部署 OpenClaw 的完整流程,包括:

  • 环境准备:Node.js LTS 安装与 npm 镜像配置
  • OpenClaw 安装:通过官方脚本一键安装,处理 PATH 配置问题
  • 初始化配置:QuickStart 模式、Z.AI 模型接入
  • 远程访问:通过 SSH 隧道访问 Web 控制界面进行问答

六、后续内容预告

OpenClaw 的功能远不止于此,接下来我将在博客和B站频道推出更多深度内容,包括:

  • 🔧 进阶配置:自定义 Skills 技能、Hooks 自动化、多 Agent 管理
  • 🔒 安全加固:生产环境部署、访问控制、审计日志配置
  • 🛠️ 插件开发:自定义飞书工具插件、接入企业内部系统
  • 🤖 模型调优:Prompt 工程、多模型切换、上下文管理
  • 📊 实战案例:搭建团队知识库助手、自动化工作流机器人

六、视频教程

如果您觉得文字教程不够直观,欢迎访问我的 B 站频道观看完整视频版部署教程:

👉 点击观看《Ubuntu 部署 OpenClaw 手把手教学》

视频中我会实时演示每一步操作,详细讲解配置选项的含义,并演示如何在飞书中与机器人进行交互。建议搭配本文一起食用,效果更佳!

Read more

OpenClaw 技能扩展实战指南:从安装 Skills 到 Tavily 联网 + 多维表格自动化

OpenClaw 技能扩展实战指南:从安装 Skills 到 Tavily 联网 + 多维表格自动化

OpenClaw 技能扩展实战指南:从安装 Skills 到 Tavily 联网 + 多维表格自动化 适用环境:macOS / Windows 核心工具:OpenClaw + ClawHub + Tavily API + 多维表格(如飞书多维表格) 一、OpenClaw 的 Skills 功能概述 OpenClaw 是一个高度可扩展的机器人智能体框架,其核心能力之一是 Skills(技能)系统。 Skills 以插件形式存在,赋予机器人执行特定任务的能力,分为两大类: 🔹 基础操作 Skills * 移动控制:路径规划、避障、自主导航 * 机械臂操作:抓取、放置、旋转等精细动作 * 传感器融合:整合激光雷达、摄像头、IMU 等数据 🔸 高级功能 Skills

By Ne0inhk
Python Selenium全栈指南:从自动化入门到企业级实战

Python Selenium全栈指南:从自动化入门到企业级实战

🌟 嗨,我是Lethehong!🌟 🌍 立志在坚不欲说,成功在久不在速🌍 🚀 欢迎关注:👍点赞⬆️留言收藏🚀 🍀欢迎使用:小智初学计算机网页AI🍀 目录 一、自动化测试的革命性工具 1.1 浏览器自动化的价值 1.2 Selenium生态全景图 二、环境搭建与基础配置 2.1 全平台安装指南 2.1.1 基础组件安装 2.1.2 浏览器驱动自动化配置  2.2 跨浏览器配置矩阵 三、核心操作全解析 3.1 元素定位的八种武器 3.1.1 基础定位器 3.1.2 XPath高级技巧 3.2 页面交互完全手册

By Ne0inhk
如何轻松避免网络负载过大

如何轻松避免网络负载过大

您是否在如何避免网站上出现过大的网络负载方面遇到问题? 如果您刚刚使用 PageSpeed Insights 或 Lighthouse 运行了您的网站,您可能会看到“避免巨大的网络负载”诊断消息,如果页面文件大小超过 1.6 MB,则会触发此消息。 幸运的是,有一些简单的方法可以减小页面大小并修复诊断问题。 在这篇文章中,你将学习如何通过实施四种高级策略来避免巨大的网络负载。 除了帮助您修复“避免过大的网络负载”诊断问题并提高您在 Google PageSpeed Insights 中的得分之外,这些技巧还能帮助您创建加载速度更快的网站并改善网站的用户体验。 看看这个简单的解决方法,它可以避免你的网站承受巨大的网络负载 什么是巨型网络有效载荷? 网络有效载荷是指在您的网站服务器和客户端浏览器之间传输的数据大小。 它是你的网站每次有人访问页面时都必须加载的数字“货物”。这包括用于构建内容结构的 HTML 文件、用于设置样式的 CSS 文件、用于添加交互功能的 JavaScript 文件,以及用于增强用户体验的媒体文件,例如图像和视频。 换句话说,它是使你的页面对人

By Ne0inhk
openclaw配置教程(linux+局域网ollama)

openclaw配置教程(linux+局域网ollama)

openclaw配置教程(linux+局域网ollama) 一、相关网站 ollama: * https://github.com/ollama/ollama * https://ollama.com/ openclaw: * https://openclaw.ai/ https://docs.openclaw.ai/ 二、前置条件 在本地局域网内的机器上已经部署了ollama ollama模型已下载,服务已经开启,可以通过curl http://local.ollama.host:11434/v1/model 获取到模型信息就行了 三、 环境 openclaw部署在一台linux机器A上 ollama部署在另一台机器 B上 本文中机器A是centos8 yum源已换、已经安装node22+,npm换源淘宝源 四、部署 1、用npm安装,然后进入部署界面

By Ne0inhk