本文档适用于 Linux 服务器(如 CentOS, Ubuntu, OpenCloudOS)。 #
📋 目录 #
- 环境准备:创建用户与安装 Node.js
- Discord 设置:申请机器人与 Token
- OpenClaw 配置:白名单与 ID
- 进程守护:实现后台 24 小时运行
- 常见问题与故障排查 (FAQ)
第一阶段:环境准备 #
1. 创建用户并授权 #
以 root 身份登录服务器终端,执行:
# 1. 创建用户,取一个名字,比如'kyoyarn'
useradd -m kyoyarn
# 2. 设置密码 (passwd+用户名,密码需输入两次)
passwd kyoyarn
# 3. 赋予管理员权限(kyoyarn替换成你的用户名)
# 注意:CentOS/OpenCloudOS 通常用 wheel 组,Ubuntu 用 sudo 组
usermod -aG wheel kyoyarn
# 如果报错 "group 'wheel' does not exist",请尝试: usermod -aG sudo kyoyarn
2. 安装 Node.js (v18+) #
OpenClaw 需要 Node.js 环境。 (如果服务器已有 Node.js v18 以上版本,可跳过此步)
# 切换到新用户进行操作(kyoyarn替换成你的用户名)
su - kyoyarn
# 使用 NVM 安装 Node.js (最稳妥的方式)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 刷新环境变量
source ~/.bashrc
# 安装并使用 Node v20
nvm install 20
nvm use 20
# 验证安装
node -v # 应输出 v20.x.x
3. 安装 OpenClaw #
# 全局安装 OpenClaw
npm install -g openclaw@latest
# 初始化配置目录
mkdir -p ~/.openclaw
# 验证安装
openclaw --version
第二阶段:Discord 设置 #
1. 创建应用 #
- 登录 Discord Developer Portal。
- 点击右上角 New Application,起个名字(如
MyOpenClaw)。 - 点击左侧菜单 Bot,点击 Reset Token。
- 👉 立即复制并保存 Token(一旦关掉网页就看不到了)。
2. 开启特权意图 (关键步骤) #
在 Bot 页面向下滚动到 Privileged Gateway Intents,必须开启以下三项:
- ✅ Presence Intent
- ✅ Server Members Intent
- ✅ Message Content Intent (不开这个,机器人就是聋子)
- 点击 Save Changes。
3. 生成邀请链接 #
-
点击左侧 OAuth2 -> URL Generator。
-
Scopes 勾选:
bot。
-
Bot Permissions 视自己需要勾选,以下几个是必需的:
Read Messages/View ChannelsSend MessagesRead Message History
- 复制生成的 URL,在浏览器打开,把机器人拉进你的服务器。
第三阶段:OpenClaw 配置 #
1. 获取 ID (需开启开发者模式) #
在 Discord 软件设置 -> Advanced -> 开启 Developer Mode。
- Guild ID (服务器 ID):右键左侧服务器图标 -> Copy Server ID。
- Channel ID (频道 ID):右键你要对话的频道 -> Copy Channel ID。
2. 写入配置文件 #
使用 nano 编辑配置文件:
nano ~/.openclaw/openclaw.json
复制并修改以下内容(注意替换 Token 和 ID):
{
"channels": {
"discord": {
"enabled": true,
"token": "你的_DISCORD_TOKEN_粘贴在这里",
"groupPolicy": "allowlist",
"guilds": {
"你的_服务器ID_粘贴在这里": {
"channels": {
"你的_频道ID_粘贴在这里": {
"allow": true
}
}
}
}
}
},
"gateway": {
// 允许通过 http://服务器IP:4000 访问控制台
"bind": "0.0.0.0"
}
}
按 Ctrl + O 回车保存,按 Ctrl + X 退出。
3. 初步测试 #
先不要开后台,手动跑一次看看通不通:
openclaw gateway
- 观察日志是否显示
Gateway connected。 - 去 Discord 发个
hello,看有没有回复。 - 测试成功后,按
Ctrl + C停止。
第四阶段:进程守护 (后台运行) #
使用 Systemd 托管服务,确保 SSH 断开后程序依然运行,且开机自启。
1. 开启用户驻留 (Linger) #
防止用户注销后进程被系统杀掉。
# 确保你是 kyoyarn 用户
loginctl enable-linger $(whoami)
2. 设置运行时变量 #
export XDG_RUNTIME_DIR=/run/user/$(id -u)
(建议将这行加到 ~/.bashrc 文件底部,以免下次登录失效)
3. 注册并启动服务 #
# 1. 安装服务
openclaw daemon install
# 2. 启动服务
openclaw daemon start
# 3. 检查状态
openclaw daemon status
看到绿色的 Active: active (running) 即大功告成!🎉
第五阶段:常见问题与故障排查 (FAQ) #
Q1: Discord 回复 “Agent failed… permission denied /root/…” #
原因:这是典型的迁移后遗症。虽然你是 kyoyarn 用户,但配置文件里还残留着 /root 的路径。
解决:
运行以下命令批量替换所有配置文件中的路径:
find ~/.openclaw -type f -exec sed -i "s|/root/.openclaw|/home/$(whoami)/.openclaw|g" {} +
# 替换完记得重启
openclaw daemon restart
Q2: 机器人在线,发消息完全没反应 (日志也静默) #
原因:通常是 Discord 后台的 Message Content Intent 没开。 解决:去 Discord Developer Portal -> Bot -> 开启 Message Content Intent -> Save Changes。
Q3: 报错 “This channel is not allowed” #
原因:白名单生效了,但你当前的频道 ID 没写进 openclaw.json。
解决:右键复制当前频道 ID,加到配置文件里,然后运行 openclaw daemon restart。
Q4: 如何查看实时报错? #
命令:
journalctl --user -u openclaw -f
(按 Ctrl + C 退出查看)
Q5: 如何彻底停止或重启? #
- 重启(修改配置后):
openclaw daemon restart - 停止(维护时):
openclaw daemon stop