openClaw源码部署-linux

OpenClaw 部署教程(Ubuntu 22.04)

我部署完成之后换了一个zh版本的,英文的能用但是我英文一般

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

直接一键安装

git地址https://github.com/1186258278/OpenClawChineseTranslation?tab=readme-ov-file

常用命令

授权列表

openclaw devices list

单个授权

bash 复制代码
openclaw devices approve 2d1234c8(requestid)

检查openclaw

bash 复制代码
openclaw doctor --fix

运行(带命令行)

bash 复制代码
openclaw gateway run

停止

bash 复制代码
openclaw gateway stop

重启

bash 复制代码
openclaw gateway restart

仪表盘token生成

bash 复制代码
openclaw dashboard --no-open

环境要求

  • 操作系统:Ubuntu 22.04 64位
  • 火山引擎服务器(自带nvm及Python 3.10.12)

1. 安装NVM和Node.js

1.1 安装NVM(Node版本管理器)

bash 复制代码
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.40.4/install.sh | bash

1.2 安装Node.js 22

bash 复制代码
nvm install 22

2. 安装Python

2.1 更新软件源

bash 复制代码
apt update

2.2 安装Python3和pip

bash 复制代码
apt install -y python3 python3-pip

3. 获取源码并安装

3.1 下载源码

从GitHub下载完整包:

3.2 解压源码

bash 复制代码
unzip openclaw-main.zip

3.3 安装pnpm

bash 复制代码
npm install -g pnpm

3.4 进入目录并安装依赖

bash 复制代码
cd openclaw-main
pnpm install

3.5 构建项目

bash 复制代码
pnpm build

3.6 创建全局软连接

bash 复制代码
pnpm link --global

3.7 如果报错,执行pnpm setup

如果执行步骤3.6时报错:

则执行以下命令:

bash 复制代码
pnpm setup
source /root/.bashrc

3.8 验证安装

bash 复制代码
openclaw --version

4. 安装和配置OpenClaw服务

4.1 安装守护进程

bash 复制代码
openclaw onboard --install-daemon

4.2 配置向导

安装过程中会显示提示信息:

  • 选择 yes:我了解该服务默认为个人使用模式,共享/多用户使用需进行安全权限加固。是否继续?
  • 选择 QuickStart:快速启动(而非manual手动配置)

4.3 模型服务选择

可用的模型服务选项包括:

  • Alibaba Cloud Model Studio:阿里云的模型服务,需要阿里云账号和API密钥,国内访问稳定,适合国内用户
  • Anthropic:Claude模型,需要海外API密钥,国内访问可能有问题
  • BytePlus:字节的模型服务,需要对应账号
  • Hugging Face:需要Hugging Face API,适合调用开源模型
  • MiniMax:国内的AI模型服务商,需要API密钥
  • Moonshot AI (Kimi K2.5):国内的Kimi模型,容易获取API密钥,适合国内用户
  • Ollama:本地部署模型,不需要API密钥,直接在本地运行,适合没有云服务的用户

注意:本教程使用科大讯飞的GLM4.7模型作为示例

科大讯飞配置示例:

API配置:

4.4 跳过网络配置

配置过程中会提示需要科学上网的步骤,可以暂时跳过:

4.5 钩子配置

选择以下三个钩子(根据需求选择):

  • boot-md:启动时生成Markdown文档,适合文档化场景,非必需
  • bootstrap-extra-files:启动时加载额外文件,适合高级自定义,新手用不到
  • command-logger:记录所有命令日志,适合调试排障,日常使用可暂不开启
  • session-memory:在执行/new(新建会话)或/reset(重置会话)命令时,自动保存当前对话上下文到内存,避免丢失历史信息,极大提升对话连贯性

然后选择no先跑一下:

4.6 选择Open WebUI

必须选择open webui

5. 配置文件设置

5.1 修改配置文件

bash 复制代码
vim /root/.openclaw/openclaw.json

5.2 配置文件内容

json 复制代码
{
	"gateway": {
		"mode": "local",
		"port": 18789,
		"bind": "lan",
		"controlUi": {
			"enabled": true
		},
		"auth": {
			"mode": "token"
		}
	}
}

说明 :将gateway.bind改成lan表示监听0.0.0.0

6. 防火墙配置

6.1 放行端口

bash 复制代码
ufw allow 18789/tcp
ufw status

6.2 服务器安全组配置

在服务器提供商控制台的安全组中也需要放行端口18789

7. 启动OpenClaw

7.1 终端启动

bash 复制代码
openclaw gateway run

7.2 服务启动

bash 复制代码
openclaw gateway restart

7.3 获取仪表盘URL

bash 复制代码
openclaw dashboard --no-open

将 WebSocket URL 和令牌粘贴到上方,或直接打开带令牌的 URL。

8. 解决跨域问题

8.1 问题描述

访问页面时可能出现报错:

复制代码
origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)

8.2 配置allowedOrigins

修改配置文件:vim /root/.openclaw/openclaw.json

json 复制代码
{
	"gateway": {
		"bind": "lan",
		"port": 18789,
		"controlUi": {
			"enabled": true,
			"allowedOrigins": ["http://你的服务器地址:18789"]
		},
		"auth": {
			"mode": "token"
		}
	}
}

9. 解决设备身份问题

9.1 问题描述

使用公网IP访问时可能出现报错:

复制代码
control ui requires device identity (use HTTPS or localhost secure context)

问题原因:使用http://公网IP:18789访问时,浏览器将其视为非安全上下文,导致WebCrypto无法正常生成设备身份。

9.2 推荐解决方案

在Windows本地通过SSH隧道连接:

bash 复制代码
ssh -N -L 18789:0.0.0.0:18789 root@你的服务器ip

输入密码后,就可以通过本地的http://localhost:18789访问OpenClaw Control UI。

10. 完成

成功配置后,您就可以开始使用OpenClaw了。记得将WebSocket URL和令牌粘贴到相应位置,或者直接打开带令牌的URL。


注意事项

  1. 确保服务器安全组和防火墙都正确配置
  2. 根据实际使用的模型服务商提供相应的API密钥
  3. 推荐的访问方式是通过SSH隧道使用localhost访问

常见问题

SSH 密钥报错 + 端口转发失败

C:\Users\drcnet>ssh -N -L 18789:0.0.0.0:18789 root@ip

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that a host key has just been changed.

The fingerprint for the ECDSA key sent by the remote host is

SHA256:c9PAoikKQ2WUD5qMQEr21OfLdBpgwpBO3yrxRbsUamo.

Please contact your system administrator.

Add correct host key in C:\Users\drcnet/.ssh/known_hosts to get rid of this message.

Offending ECDSA key in C:\Users\drcnet/.ssh/known_hosts:3

ECDSA host key for has changed and you have requested strict checking.

Host key verification failed.

这个报错是因为你的服务器重装过,本地保存的旧密钥失效了,直接删除旧密钥即可

ssh-keygen -R ip

然后重新在本地windows执行 ssh -N -L 18789:0.0.0.0:18789 root@ip

nvm安装报错

root@iv-yechelnjls5i3z3nqt12:~# curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.40.4/install.sh | bash

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 16774 100 16774 0 0 13143 0 0:00:01 0:00:01 --:--:-- 13145

=> nvm is already installed in /root/.nvm, trying to update the script

=> nvm source string already in /root/.bashrc

=> bash_completion source string already in /root/.bashrc

=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="HOME/.nvm"[−s"HOME/.nvm" [ -s "HOME/.nvm"[−s"NVM_DIR/nvm.sh" ] && . "KaTeX parse error: Expected 'EOF', got '#' at position 18: ...M_DIR/nvm.sh" #̲ This loads nvm...NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion

原因是已经有了nvm环境 需要输入下面这个命令生效

export NVM_DIR="HOME/.nvm"[−s"HOME/.nvm" [ -s "HOME/.nvm"[−s"NVM_DIR/nvm.sh" ] && . "KaTeX parse error: Expected 'EOF', got '#' at position 18: ...M_DIR/nvm.sh" #̲ This loads nvm...NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion

解决https问题-origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)(使用caddy)

官方文档

https://caddyserver.com/docs

下载地址

https://github.com/caddyserver/caddy/releases

具体解决方案

https://blog.csdn.net/Shi_haoliu/article/details/159205118?sharetype=blogdetail\&sharerId=159205118\&sharerefer=PC\&sharesource=Shi_haoliu\&spm=1011.2480.3001.8118

解决令牌问题-pairing required

https://article.juejin.cn/post/7615966482778325002

相关推荐
gf13211111 小时前
python_查询并删除飞书多维表格中的记录
java·python·飞书
程序员小寒2 小时前
前端性能优化之白屏、卡顿指标和网络环境采集篇
前端·javascript·网络·性能优化
宁波阿成2 小时前
OpenClaw 在 Ubuntu 22.04.5 LTS 上的安装与问题处理记录
java·linux·ubuntu·openclaw·龙虾
茶陵后2 小时前
吃灰安卓机变身 OpenClaw 服务器 — 完整手册
ai·aigc·agent·skill·mcp·open claw
烛阴2 小时前
Claude CLI AskUserQuestion 工具详解:让 AI 开口问你
前端·claude
带娃的IT创业者2 小时前
WeClaw 离线消息队列实战:异步任务队列如何保证在服务器宕机时不丢失任何一条 AI 回复?
运维·服务器·人工智能·python·websocket·fastapi·实时通信
wal13145202 小时前
OpenClaw教程(九)—— 彻底告别!OpenClaw 卸载不残留指南
前端·网络·人工智能·chrome·安全·openclaw
mon_star°3 小时前
在TypeScript中,接口MenuItem定义中,为什么有的属性带问号?,有的不带呢?
前端