乐于分享
好东西不私藏

OpenClaw虚拟机环境部署实战:基于OpenEuler 24.03 LTS SP3+VM搭建指南02

OpenClaw虚拟机环境部署实战:基于OpenEuler 24.03 LTS SP3+VM搭建指南02

#OpenClaw#国产化系统#AI#OpenEular

大家好,我是贾斯汀Z 。

这是贾斯汀Z的第17篇原创

网上的标准命令只适合于Ub/deban系统使用,关于OpenEular系统环境的配置网络上几乎找不到完整的信息。

因为硬件资源有限,只能通过这种方式部署在本地了。

文中每段代码都已验证可用性;也是踩了不少雷,整体运行稳定。

OpenEular其实可以支持图形化显示,但会增加影响部分系统性能,此处都是命令行配置下。

如果有条件的运行本地部署,建议首选Mac系统,这次我选择了折中方案。方案是建立在国产化系统上。

全程没有用root账号运行,规避权限上的安全隐患。

本套操作下来,虚拟磁盘占用4.5GB(关机状态,未配置各种模型技能),CPU占用2%(闲时状态),内存占用1%(预分配8GB,闲时状态),暂未涉及独立显卡。总的结果是比windows虚机的组合省了很多。

系统拓扑

win10+{VM Workstation+[OpenEular+OpenClaw]},同样适用于单机安装OpenEular底层系统环境的用户。

下面我们开工

1. OpenEular 系统基础环境准备

1)连接工具使用:Xshell 或者MobaXterm
2) 网络连接方式:桥接连接,复制到物理网络连接
3)虚拟机环境,建议至少有4GB可用于虚拟机,虚拟磁盘大于80GB,CPU至少1-2核心,(1个核心给虚机,另1个本机使用),核心推荐4核以上;
4)前面的文章已简单叙述磁盘划分的说明

5)测试用户名:abc,测试虚机IP:192.168.1.5

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
# 修改虚机的IP地址配置 (同实体物理机系统)cd/etc/sysconfig/network-scripts/sudo vi ifcfg-ens33
# 配置保存网卡服务sudo ifup ens33
# 设置重启命令sudo shutdown -r now
# 设置关机命令sudo shutdown -h now

2. OpenClaw 引导安装过程

2.1 插件端口准备的常用命令

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
# 1. 更新系统插件sudo yuminstall-yvimtelnettarcurlgitwgetgcc-c++openssl-develmakewhichxz-develnet-toolsgzip unzip
# 2. 防火墙授权开放的端口,开启防火墙服务,重启开机自启命令sudo systemctl start firewalldsudo systemctl enable firewalldsudo firewall-cmd --zone=public --add-port=18789/tcp --permanent(后面如果还有,可以陆续添加)
# 3. 重新配置加载策略生效、查看生效的端口sudo firewall-cmd --reloadsudo firewall-cmd --zone=public --list-ports (如:443/tcp 12789/tcp)

2.2 配置安装nodejs、NPM

配置前,下载nodejs的包,建议至少用nodejs(v24.14.0),来安装后面的openclaw2026.3.X版本,我在这个地方踩了很多雷,费了时间太久!!!

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
# 1. 下载安装node.js的24.x.x版本——手动安装sudo wget https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-x64.tar.xz
# 2. 查看下载的包sudo ls -l node-v24.14.0-linux-x64.tar.xz
# 3. 解压sudo tar -xf node-v24.14.0-linux-x64.tar.xz
# 4. 移动到系统目录sudo mv node-v24.14.0-linux-x64 /usr/local/node/

下面这个过程我把单独拉出来,主要是加载变量。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
# 5. 设置策略文件sudo vim /etc/profile
# 编辑profile,文件末尾添加:export PATH=/usr/local/node/bin:$PATH
# 加载此前的配置策略操作source /etc/profile
# 6. 验证查看bin下有无变量生效echo$PATH
# 7. 查看版本信息node -vnpm -v

执行到这个阶段已完成1/3,继续下面的部署。

3. 安装openclaw包

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
# 国外源无法访问,需要魔法,国内可以用的镜像源npm config set registry https://registry.npmmirror.com
# 时间约3-5分钟1) curl -fsSL https://openclaw.ai/install.sh | bash (官方直接更新安装的方法:升级到最新版)
2)npm install -g openclaw@2026.3.23 --verbose(实验环境选择了这个指令)
# 结果显示 (说明你已安装包成功!)  run `npm fund` for detailsnpm verbose cwd /home/bdlabnpm verbose os Linux 6.6.0-132.0.0.111.oe2403sp3.x86_64npm verbose node v24.14.0npm verbose npm  v11.9.2npm verbose exit0npm info ok

下一步,是大家比较熟悉的界面,

  • 1
  • 2
# 初始化openclawopenclaw onboard

Model/ auth provider :Qwen  (我选择了千问模型)

Starting Qwen OAuth:认证页面(手动复制http页面字符串到浏览器宿主机上打开认证,这个地方如果操作不当,系统初始化失败跳过,可以再次运行openclaw onboard)

Default  model:keep current (qwen-portal/coder-model)

Select channel (QuickStart):skip for now;

Search provider :skip for now;

Config skills now? : no; (待后面配置)

Enable hooks? : boot-md, bootstrap-extra-files,command-logger,session-memory (配置了这四个功能)

Hooks功能说明:
💾session-memory(会话记忆)
作用:必选! 它能让 AI 记住你们之前的对话内容。如果没有它,AI 就像“金鱼脑”,你关掉窗口再打开,它就什么都不记得了。
场景:你想接着上一次的话题聊,或者让它回顾之前提到的文件。
📝 command-logger(命令记录)
作用:推荐。 它会自动记录你输入的所有指令和 AI 的交互日志。
场景:当你想回溯之前做过什么操作,或者排查 AI 为什么执行了某个错误命令时,这个日志非常有用。
🚀 boot-md(启动配置)
作用:推荐。 每次 OpenClaw 启动时,它会自动读取一个名为 BOOT.md 的配置文件。
场景:你可以利用它设置开机自动通知(比如通过钉钉或飞书告诉你“我上线了”),或者加载自定义的启动规则。
📎 bootstrap-extra-files(额外文件引导)
作用:这是一个进阶选项,允许你在启动时加载额外的文件或配置。
建议:新手阶段通常用不到,可以先不选,保持界面清爽

🛠️ 操作指南

移动光标:使用键盘的 上下方向键 (↑/↓) 移动高亮条。
勾选/取消:按 空格键 (Space) 进行勾选(选中后 ◻ 会变成 ◼ 或出现 √)。
确认:确保 boot-md、command-logger 和 session-memory 被选中后,按 回车键 (Enter) 继续

《维护openclaw常用命令》

序号
命令
功能说明
适用场景
1
openclaw --version
查看openclaw当前运行版本
验证安装是否成功
2
openclaw dashboard
查看web(宿主机/其它终端)的地址及安全token
远程访问
3
openclaw gateway status
查看网关状态
网关异常排查时用
4
openclaw gateway restart
重启网关
调试服务运行反馈
5
kill gateway port
重启网关无效,需要先结束端口
调试网关运行
6
openclaw doctor --fix
自动修复检查道德配置异常
健康检查
7
node -v
运行openclaw安装包之前
调试查看
8
npm -v
运行openclaw安装包之前
调试查看

到这里已完成2/3,我们继续后面的操作。

4. 远程配置访问

默认情况下,OpenClaw仅允许本地访问

http://127.0.0.1:18789),若需在其他设备访问,需配置远程访问; 

4.1 配置github的SSH密钥

整个过程下来,密钥文件存放在【home/your account/.ssh】

详细过程见《Github的SSH密钥握手方式》

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
# 注册过github.com网站的个人账号ssh-keygen -t ed25519 -C "你自己的mail地址"
# 将密钥添加到 Agent(如果文件名是 id_rsa,请替换为 id_rsa)ssh-add ~/.ssh/id_ed25519
# 查看并复制pub里面的字符串备用,访问githubcat ~/.ssh/id_ed25519.pub
# 再次运行命令(验证)ssh -T git@github.com 检测结果;Hi Ju**! You've successfully authenticated, but GitHub does not provide shell access

4.2 配置密钥安全

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
# 将 id_ed25519 文件的权限修改为 600(即 -rw-------),只有所有者可以读写,其他用户无任何权限。abc当前测试用户名chmod600 /home/abc/.ssh/id_ed25519ssh abc@192.168.1.5
# 再次执行验证ssh -N -L 18789:127.0.0.1:18789 abc@192.168.1.5

4.3 配置sshd服务

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
# 安装SSH服务sudo dnf install openssh-server -y
# 启动SSH服务sudo systemctl start sshdsudo systemctl enable sshd
# 开放防火墙端口sudo firewall-cmd --add-port=22/tcp --permanentsudo firewall-cmd --reload

4.4 宿主机(其它终端)SSH连接

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
# PowerShell # 清除历史记录ssh-keygen -R 192.168.1.5
# 建立连接ssh bd@192.168.31.131

经过此操作后,在宿主机上可以通过Powershell或其它访问通讯工具连接到虚机中。

5. 安装nginx包及服务

这个反向代理配置有很多工具,像Socat,我后来选择了Nginx;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
# 安装nginx包sudo dnf install nginx -y
# 生成证书sudo mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

5.1 配置nginx 反向代理

创建配置文件 【 /etc/nginx/conf.d/openclaw.conf】

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
server {listen443 ssl http2;server_name192.168.1.5;
ssl_certificate /etc/nginx/ssl/openclaw.crt;ssl_certificate_key /etc/nginx/ssl/openclaw.key;
location / {proxy_pass http://127.0.0.1:18789;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;# WebSocket支持proxy_http_version1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_read_timeout86400;    }}

5.2 启动nginx服务

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
# 放行防火墙端口sudo firewall-cmd --add-port=443/tcp --permanentsudo firewall-cmd --reload
# 测试配置sudo nginx -t
# 启动Nginxsudo systemctl start nginxsudo systemctl enable nginx

6. Openclaw服务检查

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
# openclaw 的token查看,用于登录openclaw控制台openclaw dashboard
# 这条命令在每次启动OpenEulr系统后,都要启动!openclaw gateway --port 18789
# 服务监听(查看当前启动的服务端口情况)ss -tnlp 
# 检查授权认证 openclaw models auth login --provider qwen-portal

部署结束后,就可以在终端电脑上打开网页:
https://192.168.1.5/#token**

今天就分享到这里,有喜欢折腾的可以测试!欢迎留言。