原创

OpenClaw从安装到卸载全流程指南(Linux系统)

最近OpenClaw很火,我们来测试下在Linux系统中安装配置OpenClaw流程。

一、官方网址

官方地址:https://openclaw.ai/

GitHub地址:https://github.com/openclaw/openclaw

官方入门指南:https://docs.openclaw.ai/zh-CN

还是首先打开官方入门指南页面参考:

官方文档有时候直接进入中文版页面会被无限308重定向导致不能进入,我们可以直接访问:https://docs.openclaw.ai/

进入页面后后手动选择语言:

二、安装依赖软件

npm的方式安装OpenClaw需要依赖node.js环境和git环境,我们首先来安装依赖软件。

1.安装git环境

git官网地址:https://git-scm.com/install/windows

注:我们本来使用的Linux版本是腾讯云的轻量云服务器Centos7.6系统,但是这个系统里面软件版本都太低了,不符合OpenClaw安装条件,所以我们选择将系统迁移升级到了Anolis OS 8,迁移参考:https://openanolis.cn/sig/migration/doc/774227121804255797

系统迁移升级完成后通过dnf命令安装git:

dnf install git

2.安装node.js环境

node.js官网下载地址:https://nodejs.org/zh-cn/download

注:我们本来使用的Linux版本是腾讯云的轻量云服务器Centos7.6系统,但是这个系统里面软件版本都太低了,不符合OpenClaw安装条件,所以我们选择将系统迁移升级到了Anolis OS 8,迁移参考:https://openanolis.cn/sig/migration/doc/774227121804255797

系统迁移升级完成后通过访问node.js官网下载Linux二进制安装包上传到服务器:

或者鼠标右键在下载按钮上点击复制链接地址:

在服务器上通过wget命令直接下载:

wget https://nodejs.org/dist/v24.14.1/node-v24.14.1-linux-x64.tar.xz

下载完成后解压文件:

tar -xvf node-v24.14.1-linux-x64.tar.xz

配置环境变量,在/etc/profile文件末尾增加下面内容(环境变量地址为解压文件夹下的bin目录):

export PATH=/node-v24.14.1-linux-x64/bin:$PATH

重新加载环境变量:

source /etc/profile

3.验证依赖环境

安装完成后需要验证下依赖软件版本,输入下面命令检查依赖环境是否安装成功:

node -v
npm --version
git --version

确定输出的版本号都符合要求安装成功。

三、安装OpenClaw

1.安装OpenClaw主体

依赖安装完成,就可以开始通过npm安装OpenClaw了。我们在命令行输入下面命令安装:

npm install -g openclaw@latest

因为测试服务器只有2G内存,安装的时候编译模块容易触发ENOMEM内存溢出,可以多执行几次安装脚本,或者执行下面命令限制npm并发后重新执行安装命令:

# 设置并行数量
npm config set maxsockets 2
# 清理 npm 缓存
npm cache clean --force

2.配置openclaw

输入下面命令运行openclaw配置引导并安装守护服务:

openclaw onboard --install-daemon

运行后进入交互界面,首屏有安全警告,选择Yes后按回车继续:

选择QuickStart后回车继续:

选择模型服务商,这里可以根据需要选择,我们这里选千问Qwen,API key获取可以参考:阿里云百炼(千问)获取API KEY

选择大模型接入模式,因为我们没有订阅coding包月计划,所以选择标准模式:

填写大模型的API KEY后回车:

输入完API key后,OpenClaw会自动去联网验证,验证成功后会列出可选模型列表,这里我们选择默认的qwen/qwen3.5-plust模型:

下一步选择可以联网的在线频道,这个可以后续在web页面中配置,所以这里我们直接选择Skip for now跳过:

搜索引擎选择,继续选择Skip for now跳过:

下一步skill配置,选择NO:

是否启用自定义命令,跳过(注意这里需要先按空格选中后再回车执行选择):

这里配置基本完成了,运行方式选择Hatch in TUI文本对话框:

注:后续可以通过openclaw tui命令再次打开文本对话框。

这时候OpenClaw网关也已经启动了,可以查看系统进程和端口监听:

ps -ef|grep openclaw
netstat -anptl|grep LISTEN|grep openclaw

3.测试openclaw

4.安装nginx代理webui

网关已经启动了,但是因为OpenClaw是安装到服务器上的,服务器没有开放对应的端口,所以我们需要安装nginx将对应的端口代理出来。同时因为Anolis OS的yum软件源中nginx版本太低,所以我们使用nginx的官方yum源,在/etc/yum.repos.d/目录下创建nginx.repo文件:

vi /etc/yum.repos.d/nginx.repo

将下面内容添加进去:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

输入:wq!保存后通过dnf命令安装nginx:

dnf install nginx

安装完成后修改默认配置文件:

vi /etc/nginx/conf.d/default.conf

在配置文件中增加OpenClaw代理配置:

server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:18789;
        proxy_set_header User-Agent $http_user_agent;
        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;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

启动nginx服务:

systemctl start nginx

现在可以在本地通过浏览器访问服务器的公网IP来访问OpenClaw的web页面了:

网关令牌可以在配置文件中获取:

cat ~/.openclaw/openclaw.json|grep token

上面的web页面我们看到不允许访问,我们让OpenClaw帮忙处理下:

看下配置文件,它将服务器的公网IP配置加到了配置文件allowedOrigins参数中:

我们再来访问下web页面:

现在提示我们需要使用https,我们再让它处理下:

它帮我们修改了nginx配置文件,加了下面配置:

本地证书生成可以通过openssl工具生成:

yum install openssl -y 
openssl genrsa -out /etc/pki/nginx/server.key 2048
openssl req -x509 -nodes -days 3650 -key /etc/pki/nginx/server.key -out /etc/pki/nginx/server.crt -subj "/CN=localhost"

再次访问,发现错误提示pairing required

OpenClaw是通过websocket与后台通信的,我们可以按F12键打开浏览器调试,在套接字中查询到错误代码:

点进去可以看到websocket交互信息:

我们把错误信息复制出来发给OpenClaw处理:

处理完成后再次重新访问web页面:

可以成功访问了。进入对话后,询问下刚才操作批准访问配对的逻辑:

原来是为了安全每个设备都必须被授权后才可以访问。

5.通过域名访问openclaw

为了方便记忆,我们将域名解析到openclaw服务器上,使用域名访问openclaw前端页面,此操作需要修改nginx及openclaw.json中的配置。

nginx配置修改(完整版):

    upstream openclaw{
        server 127.0.0.1:18789;
    }
    server{
        listen       80;
        listen       [::]:80;
        server_name openclaw.eyyyye.com;
        return 301 https://$host$request_uri;
    }
    server {
        listen        443 ssl;
        listen        [::]:443 ssl;
        http2 on;
        server_name openclaw.eyyyye.com;

        ssl_certificate /etc/pki/nginx/fullchain.cer;
        ssl_certificate_key /etc/pki/nginx/eyyyye.com.key;
        ssl_protocols TLSv1.3 TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 60m;
        proxy_ssl_server_name on;

        location / {
            proxy_pass http://openclaw;
            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;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_read_timeout 86400s;
            proxy_send_timeout 86400s;
            proxy_buffering off;
        }
    }

openclaw配置修改(gateway部分):

  "gateway": {
    "mode": "local",
    "auth": {
      "mode": "token",
      "token": "40b1484119209c23d3214d3189b28bd7f4afcde8ab5c6e17"
    },
    "port": 18789,
    "bind": "loopback",
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    },
    "controlUi": {
      "allowInsecureAuth": true,
      "allowedOrigins": ["https://openclaw.eyyyye.com"]
    },
    "nodes": {
      "denyCommands": [
        "camera.snap",
        "camera.clip",
        "screen.record",
        "contacts.add",
        "calendar.add",
        "reminders.add",
        "sms.send",
        "sms.search"
      ]
    }
  }

域名解析配置,我们使用的是阿里云的ESA,直接在DNS记录中添加解析:

出于安全考虑,加个WAF防火墙白名单,只允许指定ip访问:

设置完成后就可以通过域名访问了:

通过openclaw devices list命令查看requestID:

通过命令批准设备访问权限:

openclaw devices approve 21a05299-28c2-429e-8f04-afff5342c854

批准完成就可以正常访问了:

6.openclaw常用命令

#启动服务
openclaw gateway start
#停止服务
openclaw gateway stop
#重启服务
openclaw gateway restart
#查看服务状态
openclaw status
#升级openclaw
npm update -g openclaw --verbose
#打开文本交互聊天环境
openclaw tui
# 查看所有设备
openclaw devices list
#批准设备访问权限
openclaw devices approve requestID
#撤销设备访问权限
openclaw devices remove deviceID
# 批量清理访问权限
openclaw devices clear

五、接入微信机器人

微信已经开放了ClawBot机器人,只要微信版本大于(iOS:8.0.70;安卓:8.0.69)就可以使用。

微信ClawBot机器人开源地址:https://www.npmjs.com/package/@tencent-weixin/openclaw-weixin

我们在手机微信中进入【我】->【设置】->【插件】,可以看到ClawBot:

点击详情可以查看如何安装微信ClawBot:

在服务器上执行微信ClawBot安装命令:

npx -y @tencent-weixin/openclaw-weixin-cli@latest install

因为服务器只有2核2G,所以安装的时候很卡:

可能是服务器太废吧,大概几分钟后服务器就卡死了:

我们重启服务器后手动安装:

openclaw plugins install "@tencent-weixin/openclaw-weixin"

安装完成后输入命令启用微信插件:

openclaw config set plugins.entries.openclaw-weixin.enabled true

启用完成后通过下面命令调出微信ClawBot登录二维码:

openclaw channels login --channel openclaw-weixin

使用手机扫一扫,扫码连接微信ClawBot:

扫码完成,连接成功:

最后重新启动下openclaw网关:

openclaw gateway restart

频道中已经出现微信机器人:

手机也可以与clawbot机器人对话了:

正好刚才连接的时候一直提示检测到重复的插件ID,我们让它处理一下:

完工,可以愉快的使用了。唯一的一点点不好是它处理完了不会主动给你发消息,还得问他一下才回复。

六、卸载OpenClaw

好了,都搞定了,可以开始卸载了。我们还是使用官方提供了卸载方案,在命令行直接输入卸载命令:

openclaw uninstall

选择需要卸载的服务(空格键选择,选项前面格子变成绿色+号为选中,一般默认会全部选中):

回车后选择Yes卸载完成:

输入下面命令卸载CLI:

npm rm -g openclaw

卸载完成!


扩展说明:

1.参考文档1:https://docs.openclaw.ai/zh-CN

2.参考文档2:OpenClaw从安装到卸载全流程指南(Windows系统)

3.参考文档3:https://www.npmjs.com/package/@tencent-weixin/openclaw-weixin

正文到此结束
本文目录