
前提条件
- 已安装并运行的虚拟机(推荐使用 Ubuntu 或其他 Linux 发行版)
- 虚拟机已连接网络
- 具有 sudo 或 root 权限
在虚拟机Ubuntu上安装OpenClaw(Node.js 与 Docker 双路线)
本教程专门针对在 虚拟机软件(如 VMware、VirtualBox)中运行的 Ubuntu 系统(24.04 LTS版本)。无论您使用 Node.js 直接安装 还是 Docker 容器部署,都能按图索骥。我们将配置国内稳定连接的 智谱AI (GLM-5.1) 模型,并解决从宿主机访问虚拟机上 OpenClaw 网页界面的关键问题。
准备工作:虚拟机环境检查
- 网络模式:建议将虚拟机网络设置为 桥接模式 或 NAT 模式(需配置端口转发)。这决定了您后续能否从宿主机访问服务。
- 系统更新:打开虚拟机终端,更新软件源。
sudo apt update && sudo apt upgrade -y - 安装必要工具:
sudo apt install curl git wget build-essential -y
路线一:使用 Node.js 安装(推荐,性能好)
此方法与原文思路一致,但针对虚拟机环境进行了优化和详细解释。
第1步:安装 Node.js 22
# 使用 NodeSource 仓库安装最新 LTS 版
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证
node -v # 应输出 v24.xx.x
npm -v

第2步:安装 OpenClaw
# 全局安装
sudo npm install -g openclaw@latest
# 验证
openclaw -v

第3步:初始化配置(对接智谱 AI)
openclaw onboard

按照交互提示操作,参考下表:
| 提示项 | 您的操作 | 说明 |
|---|---|---|
| 风险告知 | 方向键 ← 选 Yes,回车 | 确认 |
| 安装模式 | QuickStart | 快速开始 |
| AI 模型提供商 | Z.AI | 智谱,国内访问快 |
| API Key | 粘贴您的密钥 | 获取地址 |
| 模型 | GLM-5.1 | 强大且稳定 |
| 通讯平台 | skip for now | 先跳过 |
| Skills | No | 暂不安装 |
| Hooks | skip for now | 后续再配 |
快速操作截图展示:



重点

注意:在hooks这步,先调到“暂时跳过”,按空格选中方框,再敲回车。


如果出现以下输出,则openclaw安装完成:终端启动

使用网页版,可以直接在终端输入以下命令,会自动跳转到网页http://127.0.0.1:18789/
openclaw dashboard

如果只是体验试用,后面的操作可以忽略。
第4步:启动网关并保持后台运行
不要直接运行 openclaw gateway,因为关闭终端后进程会终止。虚拟机应用推荐使用 tmux 或 screen。
方法一:使用 tmux(推荐)
tmux 是一个终端复用器,可以让您在后台运行程序,即使关闭终端窗口也不会中断进程。
# 1. 安装 tmux
sudo apt install tmux -y
# 2. 创建一个名为 openclaw 的会话
tmux new -s openclaw
# 3. 在 tmux 会话中启动网关
openclaw gateway
# 4. 分离会话(让网关在后台运行)
# 按下组合键:Ctrl+B,然后按 D 键
# 此时网关会在后台继续运行,您可以安全关闭终端窗口
后续操作:
- 查看网关运行状态和日志:
tmux attach -t openclaw - 重新分离会话:再次按下
Ctrl+B,然后按D键 - 结束 tmux 会话:在会话中按
Ctrl+D或输入exit
方法二:使用 screen(备选方案)
如果您的系统已安装 screen,也可以使用它来保持后台运行:
# 1. 创建一个名为 openclaw 的 screen 会话
screen -S openclaw
# 2. 在会话中启动网关
openclaw gateway
# 3. 分离会话(让网关在后台运行)
# 按下组合键:Ctrl+A,然后按 D 键
后续操作:
- 重新连接会话:
screen -r openclaw - 查看所有会话:
screen -ls
第5步:从宿主机访问 OpenClaw 网页控制台
-
在虚拟机内获取访问地址:
启动网关后,新开一个终端窗口,运行:openclaw dashboard它会输出一个类似
http://127.0.0.1:18789/?token=xxxxxx的地址。 -
关键步骤:地址转换
- 虚拟机的
127.0.0.1只能被虚拟机自身访问,宿主机无法直接打开。 - 请将地址中的
127.0.0.1替换为虚拟机的 IP 地址。 - 查询虚拟机 IP:在虚拟机终端运行
ip addr show | grep inet,通常看到类似192.168.x.x或10.x.x.x的地址。 - 最终在宿主机浏览器中访问的例子:
http://192.168.1.100:18789/?token=xxxxxx
- 虚拟机的
-
无法访问?检查防火墙:
在虚拟机中开放端口:sudo ufw allow 18789/tcp
路线二:使用 Docker 安装(隔离性好,环境干净)
这是原文提到但未详述的方式,非常适合虚拟机环境,可以避免 Node.js 版本冲突。
第1步:在 Ubuntu 虚拟机中安装 Docker
# 官方一键安装脚本(推荐)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将当前用户加入 docker 组,避免每次使用 sudo
sudo usermod -aG docker $USER
# 重新登录或运行 newgrp docker 使生效
newgrp docker
第2步:拉取并运行 OpenClaw 容器
原文给出的 Docker 命令有误(端口映射为3000,且未配置模型存储)。这里给出修正后的生产级运行命令:
# 创建本地数据目录(用于持久化配置和 API Key)
mkdir -p ~/openclaw-data
# 运行容器
docker run -d \
--name openclaw \
--restart unless-stopped \
-p 18789:18789 \
-v ~/openclaw-data:/root/.openclaw \
openclaw/openclaw:latest
参数解释:
-d:后台运行。--restart unless-stopped:虚拟机重启后自动启动容器。-p 18789:18789:将虚拟机的18789端口映射到容器内端口(原文3000是错误的)。-v ~/openclaw-data:挂载目录,保存配置,删除容器后数据不丢失。
第3步:进入容器配置 API Key
# 进入容器的命令行
docker exec -it openclaw bash
# 在容器内运行初始化向导
openclaw onboard
# (配置步骤同上面的 Node.js 路线表,同样选择 Zhipu AI 和 GLM-4.6)
# 配置完成后退出容器
exit
第4步:重启容器使配置生效
docker restart openclaw
第5步:访问与日志查看
- 访问:与 Node.js 路线相同,从宿主机浏览器访问
http://<虚拟机IP>:18789。 - 查看容器日志:
docker logs openclaw -f - 停止/启动:
docker stop openclaw/docker start openclaw
虚拟机常见问题解决
-
问:为什么我按照地址访问,浏览器显示“无法访问此站点”?
- 可能1:OpenClaw 网关未运行。在虚拟机内检查:执行
curl http://127.0.0.1:18789看是否有响应。 - 可能2:防火墙阻挡。执行
sudo ufw allow 18789。 - 可能3:虚拟机网络问题。尝试在宿主机
ping 虚拟机IP看是否通。
- 可能1:OpenClaw 网关未运行。在虚拟机内检查:执行
-
问:Docker 方式下,运行
openclaw命令提示“未找到”?- 答:需要先进入容器内部:
docker exec -it openclaw bash。
- 答:需要先进入容器内部:
-
问:虚拟机挂起或重启后,OpenClaw 会自动启动吗?
- Node.js 方式:不会,需要每次手动
tmux或配置 systemd 服务(较复杂)。 - Docker 方式:会,因为我们加了
--restart unless-stopped参数。
- Node.js 方式:不会,需要每次手动
总结
对于虚拟机 Ubuntu 用户,如果您追求 环境隔离和开机自启的便利性,推荐 Docker 安装路线;如果您希望 对 OpenClaw 有更细粒度的控制或进行二次开发,推荐 Node.js 安装路线。无论哪条路,本文都已针对虚拟机的特殊性(网络访问、后台运行)给出了完整解决方案。
372



被折叠的 条评论
为什么被折叠?



