Ubuntu 下安装 OpenClaw 并配置安全访问
介绍在 Ubuntu 系统上安装 OpenClaw AI 框架的步骤。首先升级 Node.js 至 v22+,通过 npm 或脚本安装 OpenClaw。接着初始化配置,修改网关绑定地址以支持局域网访问,并开放防火墙端口。推荐使用 SSH 隧道进行安全的外部访问,避免直接暴露 HTTP 服务。最后演示如何添加模型密钥及扩展技能。

介绍在 Ubuntu 系统上安装 OpenClaw AI 框架的步骤。首先升级 Node.js 至 v22+,通过 npm 或脚本安装 OpenClaw。接着初始化配置,修改网关绑定地址以支持局域网访问,并开放防火墙端口。推荐使用 SSH 隧道进行安全的外部访问,避免直接暴露 HTTP 服务。最后演示如何添加模型密钥及扩展技能。

OpenClaw 要求 Node.js 版本≥22.0.0,低版本会导致 npm 安装失败。若系统已安装其他版本,请务必升级。
1. 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装完成后,重新加载环境变量:
source ~/.bashrc # 若使用 bash
# source ~/.zshrc # 若使用 zsh
2. 安装 Node.js v22 并设为默认
nvm install 22
nvm alias default 22
nvm use 22
3. 验证版本
node -v # 应显示 v22.x.x
npm -v # 检查 npm 版本
如果你希望直接覆盖系统 Node 版本,可以使用以下命令(以 Ubuntu/Debian 为例):
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt-get install -y nodejs
CentOS/RHEL 用户请使用:
curl -fsSL https://rpm.nodesource.com/setup_22.x | bash -
yum install -y nodejs
从 Node.js 官网 下载 Linux 二进制包,解压后配置 PATH 即可。
curl -fsSL https://openclaw.ai/install.sh | bash
若网络不稳定,也可以直接使用 npm 全局安装(避免脚本问题):
npm install -g openclaw@latest
openclaw --version
出现版本号即表示安装成功。
openclaw onboard
此命令将引导你完成基础配置,包括:
跳过模型配置: 若暂时没有 API Key,可以选择跳过,后续随时补充。
选择 Open the Web UI:
OpenClaw 默认只监听本地(127.0.0.1),如需从局域网其他设备访问 Web 控制台,需修改配置文件。
配置文件位于 ~/.openclaw/openclaw.json,编辑该文件:
nano ~/.openclaw/openclaw.json
找到 gateway 部分,将 bind 的值改为 "lan"(监听所有网络接口),并确保端口为 18789。
修改后重启 Gateway 服务:
openclaw gateway restart
根据你的防火墙工具,开放 18789 端口(注意:生产环境建议限制来源 IP):
# ufw
ufw allow 18789/tcp
# firewalld
firewall-cmd --add-port=18789/tcp --permanent && firewall-cmd --reload
# iptables
iptables -A INPUT -p tcp --dport 18789 -j ACCEPT
验证监听状态:
ss -untlp | grep 18789
应显示类似 0.0.0.0:18789 的监听记录。
由于 Web 控制台基于 HTTP 且未配置 HTTPS,直接暴露可能带来安全风险。最安全的方式是通过 SSH 隧道将远程端口映射到本地。
在宿主机(你的物理机)上执行:
ssh -L 8888:localhost:18789 root@<虚拟机 IP>
8888:本地监听端口,可自定义<虚拟机 IP>:Ubuntu 虚拟机的实际 IP 地址保持此终端窗口打开,然后打开宿主机浏览器,访问 http://localhost:8888。此时相当于本地访问,完美满足浏览器的'安全上下文'要求,且所有流量均通过 SSH 加密。
优点:无需修改 OpenClaw 配置、无需开放防火墙、流量加密。 缺点:每次访问需保持 SSH 连接。
这是正常现象,不影响使用,可忽略。
bind 是否设置为 "lan" 或 "0.0.0.0"(注意新版需用 lan 模式)。在配置文件中添加 controlUi.allowedOrigins,例如:
"controlUi": {"allowedOrigins": ["http://你的宿主机 IP:18789"]}
然后重启 Gateway。
这是因为通过 HTTP 访问非本地地址。解决方案:
allowInsecureAuth: true(仅限测试环境)通过 Web 控制台或命令行添加:
openclaw config set models.providers.openai.apiKey sk-xxxxxx
openclaw models set openai/gpt-4
使用官方工具 clawhub:
npm install -g clawhub
clawhub install tavily-search # 安装联网搜索技能
如果你有本地部署的模型(如 Ollama、vLLM),可通过自定义模型提供商接入,参考 官方文档。
通过本文,你已经在 Ubuntu 上成功搭建了 OpenClaw AI 助理,并掌握了通过 SSH 隧道安全访问 Web 控制台的方法。OpenClaw 的强大之处在于其可扩展性——你可以随时添加新技能、接入不同模型,甚至开发自己的插件。
友情提示:建议创建普通用户运行 OpenClaw,避免使用 root 带来安全风险。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online