安装环境:
Ubuntu 22.04 64位
openclaw:2026.3.7版本
Ubuntu用户:root
一、openclaw默认安装
1、运行Claw_setup.sh(看附录)
首先给脚本权限并且执行,完成openclaw安装。
2、查看openclaw状态以及日志是否存在报错
如果一切顺利那么就是正常安装完成
# 查看服务状态
systemctl status openclaw
# 如果未运行,启动服务
systemctl start openclaw
查看监听状态
ss -tulpn | grep 18789
正常输出如下:
LISTEN 0 511 127.0.0.1:18789 0.0.0.0:* users:(("node",pid=xxxxx,fd=xx))
日志查看:如果有问题发给AI解决
journalctl -u openclaw -n 50 --no-pager
3、配置文件路径
/root/.openclaw/openclaw.json
可备份:
cp /root/.openclaw/openclaw.json /root/.openclaw/openclaw.json.bak
4、交互式配置model、channel
openclaw configure
5、模型配置(选择就行,其他默认回车)...略
6、配置飞书
# 交互式登录/配置飞书频道
openclaw models add
找到配置飞书的依次配置ID和Secret,正常情况下是能配置好的,如果遇到以下报错,请按如下步骤进行:
报错信息:
◇ Plugin install ─────────────────────────────────────────────╮
│ │
│ Failed to install @openclaw/feishu: plugin already exists: │
│ /root/.openclaw/extensions/feishu (delete it first) │
│ │
├──────────────────────────────────────────────────────────────╯
Plugin install failed: plugin already exists: /root/.openclaw/extensions/feishu (delete it first)
解决方式,彻底清除存在的插件,重新安装飞书插件:
1. 停止 OpenClaw 服务
systemctl stop openclaw
2. 彻底删除所有飞书插件目录(两个都要删)
# 删除用户全局安装的飞书插件
rm -rf /root/.openclaw/extensions/feishu
# 删除系统自带的飞书插件(避免冲突)
rm -rf /usr/lib/node_modules/openclaw/extensions/feishu
3. 清理 OpenClaw 插件缓存与配置
# 清理插件缓存目录(如果存在)
rm -rf /root/.openclaw/plugins/cache
# 重置插件配置(避免残留重复条目)
openclaw plugins reset feishu 2>/dev/null || true
4. 重新全局安装飞书插件(仅安装一次)
openclaw plugins install @openclaw/feishu
5. 手动安装缺失的飞书 SDK 依赖(关键步骤)
# 进入飞书插件目录
cd /root/.openclaw/extensions/feishu
# 安装 package.json 中定义的依赖(包括 @larksuiteoapi/node-sdk)
npm install
6. 验证插件加载状态
# 回到家目录
cd ~
# 查看插件列表,确认 feishu 状态为 loaded 或 disabled(不再是 error)
openclaw plugins list
7. 启动 OpenClaw 服务
systemctl start openclaw
8. 最后触发飞书频道交互式配置
openclaw models add
基本上就没问题了,飞书的配置就全部默认回车只需要配置ID和Secret即可。
但后续飞书对话中如果出现报错:
OpenClaw: access not configured.
Your Feishu user id: ou_xxxxxxxxxxx
Pairing code: PxxxxB
Ask the bot owner to approve with:
openclaw pairing approve feishu PxxxxB
那么执行如下命令:
openclaw pairing approve feishu PxxxxB
systemctl restart openclaw
二、飞书配置
1、访问飞书开发者平台:https://open.feishu.cn/app
2、创建应用


3、添加机器人

4、导入权限配置
{
"scopes": {
"tenant": [
"contact:user.base:readonly",
"contact:user.employee_id:readonly",
"contact:user.id:readonly",
"contact:contact.base:readonly",
"im:chat",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:read",
"im:chat.moderation:read",
"im:chat.tabs:read",
"im:chat.tabs:write_only",
"im:chat.top_notice:write_only",
"im:chat:moderation:write_only",
"im:chat:operate_as_owner",
"im:chat:read",
"im:chat:readonly",
"im:chat:update",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.group_msg",
"im:message.p2p_msg:readonly",
"im:message.pins:read",
"im:message.pins:write_only",
"im:message.reactions:read",
"im:message.reactions:write_only",
"im:message.urgent",
"im:message.urgent.status:write",
"im:message:readonly",
"im:message:send_as_bot",
"im:message:send_multi_depts",
"im:message:send_multi_users",
"im:message:send_sys_msg",
"im:message:update",
"im:resource",
"im:url_preview.update",
"im:user_agent:read",
"passport:session_mask:readonly"
],
"user": []
}
}

5、添加事件回调
openclaw配置好基础信息中的ID和Secret后,这里就能够配置回调了。


添加事件:

6、发布,完成飞书的创建

注意:
默认情况下,openclaw安装完成是本地127.0.0.1启动,不建议公网开放,那么如果要访问web端http://127.0.0.1:18789的话,可使用frp。
ECS云端:运行frpc和frps
-
上传并解压 frp
登录 ECS,下载 frp(若无法访问 GitHub,可手动上传压缩包)
cd /root
wget https://github.com/fatedier/frp/releases/download/v0.67.0/frp_0.67.0_linux_amd64.tar.gz解压并重命名(简化路径)
tar -zxvf frp_0.67.0_linux_amd64.tar.gz
mv frp_0.67.0_linux_amd64 frp
cd frp -
ECS 部署 frps,配置 frps.ini(服务端配置)
frp 0.67.0 仍支持 ini 格式(仅警告,不影响功能),编辑配置文件:
vim frps.ini
粘贴以下内容:
[common]
# frps 监听端口(需开放安全组)
bind_port = 7000
# 可选:仪表盘端口(用于查看 frp 状态,无需可注释)
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin123
# 可选:日志级别(debug/info/warn/error)
log_level = info
log_file = ./frps.log
-
启动
前台启动测试(查看是否报错,按 Ctrl+C 停止)
./frps -c ./frps.ini
后台持久化运行(推荐)
nohup ./frps -c ./frps.ini > frps.log 2>&1 &
验证 frps 是否启动
ps -ef | grep frps
正常输出:root 12345 1 0 10:00 ? 00:00:00 ./frps -c ./frps.ini
-
ECS 部署 frpc,配置 frpc.ini(客户端配置)
vim frpc.ini
粘贴以下内容:
[common]
# ECS 公网 IP(frps 部署地址)
server_addr = 1.1.1.1
# 与 frps.ini 的 bind_port 一致
server_port = 7000
# 可选:日志配置
log_level = info
log_file = ./frpc.log
# SOCKS5 代理配置(核心)
[socks5_proxy]
type = tcp
# 开放的公网端口(对应安全组 1080)
remote_port = 1080
# frp 内置 SOCKS5 插件
plugin = socks5
# 可选:SOCKS5 认证(增强安全性,建议配置)
plugin_user = user
plugin_passwd = passwd
# 超时时间(可选)
plugin_timeout = 60
-
启动 frpc
前台启动测试(查看连接日志,按 Ctrl+C 停止)
./frpc -c ./frpc.ini
后台运行(推荐)
nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &
验证 frpc 是否启动
ps -ef | grep frpc
正常输出:root 12346 1 0 10:01 ? 00:00:00 ./frpc -c ./frpc.ini
查看 frpc 日志(确认连接成功)
tail -f frpc.log
成功日志:connect to server success | [socks5_proxy] start proxy success
本地客户端:配置 Proxifier
- 安装 Proxifier
下载 Proxifier(建议官网或可信渠道),安装后打开软件。
-
添加 SOCKS5 代理服务器
- 点击顶部菜单「Profile」→「Proxy Servers」→「Add」;
- 配置代理服务器参数:
- Address:填写 ECS 公网 IP(如1.1.1.1);
- Port:填写 1080;
- Protocol:选择 SOCKS5;
- 勾选「Enable」;
- 若 frpc.ini 配置了
plugin_user/plugin_passwd,点击「Credentials」→「Add」,填写用户名(user)和密码(passwd)。
-
点击「Check」测试连通性,提示「Proxy Server is reachable」即为成功;
-
点击「OK」保存。
-
配置代理规则(核心:让访问 127.0.0.1:18789 走代理)
-
点击顶部菜单「Profile」→「Proxification Rules」→「Add」;
-
配置规则参数:
-
Name:自定义(如 ECS-18789);
-
Applications:可选(仅让指定程序走代理,如浏览器,默认全量);
-
Target Hosts:填写
127.0.0.1(因为要访问 ECS 的 localhost:18789); -
Target Ports:填写
18789; -
Action:选择「Proxy SOCKS5_Proxy」(即上一步添加的代理服务器);
-
-
点击「OK」保存,确保规则优先级高于默认规则。
最后,在本地客户端打开浏览器,访问http://127.0.0.1:18789
其他
关于openclaw的权限问题,如果有被限制权限的话(为了安全起见,还是请注意权限控制),解决方案如下:
1、执行命令
bash
openclaw config set tools.profile full
2、在web界面中,Agent处进行修改,全部开启即可

附录
安装脚本:Claw_setup.sh
#!/bin/bash
# ==============================================
# 阿里云 ECS Ubuntu 22.04 LTS OpenClaw 全自动部署脚本
# 适配 root 用户,仅监听 127.0.0.1:18789,配合 FRP 隧道使用
# ==============================================
set -e
# --------------------------
# 前置校验:拦截不符合要求的环境
# --------------------------
echo "===== 1. 环境前置校验 ====="
# 校验是否为root用户
if [ "$(id -u)" -ne 0 ]; then
echo "错误:必须使用root用户运行此脚本!"
exit 1
fi
# 校验是否为Ubuntu 22.04系统
if ! grep -q "Ubuntu 22.04" /etc/os-release; then
echo "错误:此脚本仅适配Ubuntu 22.04 LTS系统!"
exit 1
fi
echo "✅ 环境校验通过,符合安装要求"
# --------------------------
# 系统基础优化与依赖安装
# --------------------------
echo -e "\n===== 2. 系统基础配置与依赖安装 ====="
# 优化apt源超时设置,适配阿里云ECS
echo "Acquire::http::Timeout \"30\";" > /etc/apt/apt.conf.d/99timeout
echo "Acquire::https::Timeout \"30\";" >> /etc/apt/apt.conf.d/99timeout
# Git SSH 访问问题,强制使用 HTTPS
git config --global url."https://github.com/".insteadOf ssh://git@github.com/
git config --global url."https://".insteadOf git://
# 更新系统并安装必备依赖
apt update -y
apt install -y curl git build-essential ca-certificates
echo "✅ 系统依赖安装完成"
# --------------------------
# 安装Node.js 22(OpenClaw强制要求版本)
# --------------------------
echo -e "\n===== 3. 安装Node.js 22 LTS ====="
# 导入nodesource官方公钥与源,适配Ubuntu 22.04
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/nodesource.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" > /etc/apt/sources.list.d/nodesource.list
# 安装Node.js
apt update -y
apt install -y nodejs
# 配置国内npm镜像,加速安装,避免超时
npm config set registry https://registry.npmmirror.com
# 校验安装结果
NODE_VERSION=$(node -v)
NPM_VERSION=$(npm -v)
echo "✅ Node.js安装完成,版本:$NODE_VERSION,npm版本:$NPM_VERSION"
# --------------------------
# 全局安装最新版OpenClaw
# --------------------------
echo -e "\n===== 4. 安装OpenClaw最新版 ====="
npm install -g openclaw@latest
# 校验安装结果
OPENCLAW_PATH=$(which openclaw)
OPENCLAW_VERSION=$($OPENCLAW_PATH --version)
echo "✅ OpenClaw安装完成,路径:$OPENCLAW_PATH,版本:$OPENCLAW_VERSION"
# --------------------------
# 初始化配置(关键步骤)
# --------------------------
echo -e "\n===== 5. 初始化 OpenClaw 配置 ====="
# 先停止可能存在的旧服务
systemctl stop openclaw 2>/dev/null || true
# 生成基础配置(非交互式)
mkdir -p /root/.openclaw
# 仅本地监听,关闭跨域限制,配合 FRP 使用
cat > /root/.openclaw/openclaw.json <<EOF
{
"gateway": {
"mode": "local",
"bind": "loopback",
"port": 18789,
"auth": {
"mode": "none"
},
"controlUi": {
"enabled": true,
"dangerouslyAllowHostHeaderOriginFallback": true
}
}
}
EOF
echo "✅ 配置文件生成完成"
# --------------------------
# 创建systemd系统服务
# --------------------------
echo -e "\n===== 6. 创建OpenClaw系统服务 ====="
# 生成服务文件,动态获取路径
cat > /etc/systemd/system/openclaw.service <<EOF
[Unit]
Description=OpenClaw AI Gateway Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root
# 【核心修改】去掉 --bind lan,仅使用默认本地监听
Environment="OPENCLAW_SKIP_SYSTEMD=1"
ExecStart=$OPENCLAW_PATH gateway run
Restart=always
RestartSec=5
StandardOutput=journal+console
StandardError=journal+console
[Install]
WantedBy=multi-user.target
EOF
# 加载服务、设置开机自启、启动服务
systemctl daemon-reload
systemctl enable openclaw
systemctl start openclaw
echo "✅ OpenClaw系统服务创建完成,已设置开机自启"
# --------------------------
# 最终部署结果校验
# --------------------------
echo -e "\n===== 7. 部署结果最终校验 ====="
sleep 3
# 校验服务运行状态
if systemctl is-active --quiet openclaw; then
echo "✅ OpenClaw服务运行正常"
else
echo "❌ 服务启动失败,请执行 journalctl -u openclaw -f 查看报错日志"
exit 1
fi
# 校验端口监听状态(仅本地 127.0.0.1)
if ss -tulpn | grep -q "127.0.0.1:18789"; then
echo "✅ 端口监听正常:127.0.0.1:18789"
else
echo "❌ 端口监听失败,请检查服务日志"
exit 1
fi
# --------------------------
# 部署完成输出
# --------------------------
echo -e "\n=============================================="
echo "🎉 OpenClaw 部署完成!"
echo -e "\n📌 本地访问地址:http://127.0.0.1:18789"
echo -e "\n⚠️ 下一步操作:"
echo " 1. 配置 FRP 客户端,将本地 18789 端口映射出去"
echo " 2. 通过 FRP 隧道访问 Web 界面"
echo -e "\n常用运维命令:"
echo "查看服务状态:systemctl status openclaw"
echo "查看运行日志:journalctl -u openclaw -f"
echo "重启服务:systemctl restart openclaw"
echo "停止服务:systemctl stop openclaw"
echo "=============================================="
卸载脚本:uninstall_claw.sh
#!/bin/bash
# ==============================================
# OpenClaw 完全卸载脚本(适配 Ubuntu 22.04 root 用户)
# ==============================================
set -e
# --------------------------
# 前置校验
# --------------------------
echo "===== 卸载前置校验 ====="
if [ "$(id -u)" -ne 0 ]; then
echo "错误:必须使用 root 用户运行此脚本!"
exit 1
fi
# --------------------------
# 二次确认
# --------------------------
echo -e "\n⚠️ 警告:此操作将完全卸载 OpenClaw,包括:"
echo " 1. 停止并删除 systemd 服务"
echo " 2. 全局卸载 OpenClaw npm 包"
echo " 3. 删除配置目录 /root/.openclaw"
echo " 4. 清理相关日志"
echo -e "\n此操作不可逆,请确认是否继续?"
read -p "输入 yes 继续,其他键取消:" CONFIRM
if [ "$CONFIRM" != "yes" ]; then
echo "✅ 已取消卸载"
exit 0
fi
# --------------------------
# 执行卸载
# --------------------------
echo -e "\n===== 1. 停止 OpenClaw 服务 ====="
if systemctl is-active --quiet openclaw; then
systemctl stop openclaw
echo "✅ 服务已停止"
else
echo "⚠️ 服务未运行,跳过停止"
fi
echo -e "\n===== 2. 禁用并删除 systemd 服务 ====="
if systemctl is-enabled --quiet openclaw 2>/dev/null; then
systemctl disable openclaw
echo "✅ 服务已禁用开机自启"
fi
if [ -f /etc/systemd/system/openclaw.service ]; then
rm -f /etc/systemd/system/openclaw.service
systemctl daemon-reload
systemctl reset-failed
echo "✅ 服务文件已删除"
else
echo "⚠️ 服务文件不存在,跳过"
fi
echo -e "\n===== 3. 全局卸载 OpenClaw npm 包 ====="
if npm list -g openclaw >/dev/null 2>&1; then
npm uninstall -g openclaw
echo "✅ OpenClaw npm 包已卸载"
else
echo "⚠️ OpenClaw npm 包未安装,跳过"
fi
echo -e "\n===== 4. 删除配置目录 ====="
if [ -d /root/.openclaw ]; then
rm -rf /root/.openclaw
echo "✅ 配置目录 /root/.openclaw 已删除"
else
echo "⚠️ 配置目录不存在,跳过"
fi
echo -e "\n===== 5. 清理残留进程(如有) ====="
pkill -f openclaw 2>/dev/null || true
echo "✅ 残留进程已清理"
# --------------------------
# 卸载完成
# --------------------------
echo -e "\n=============================================="
echo "🎉 OpenClaw 已完全卸载!"
echo -e "\n📌 说明:"
echo " - Node.js 未卸载(如需卸载请手动执行:apt remove -y nodejs)"
echo " - npm 配置未修改(如需清理请手动删除:/root/.npmrc)"
echo "=============================================="