从一台 CentOS 7 机器说起
- 服务器:国内某云 CentOS 7.x
- 目标:部署 OpenClaw + QQ 机器人
- 核心困难:glibc 版本过低 + 外网访问受限
坑一:CentOS 7 版本过低,Node 22+ 无法安装
现象:安装 OpenClaw(小龙虾)需要 Node 22+ 版本。按官方教程用 nvm 安装后,执行
node -v 出现以下报错:
原因:CentOS 7 自带的 glibc 版本是 2.17,而 Node.js 18+ 新版本需要更高版本的 glibc。宿主机无法通过常规方式升级 glibc。
坑二:网络不通,拉取镜像超时
现象:按 OpenClaw 官方 Docker 教程执行
./scripts/docker/setup.sh,构建镜像时各种依赖库因网络问题拉不下来,卡住无法继续。
尝试过的无效方案:
- 配置 Docker 镜像加速器(阿里云 / 腾讯云,不太好使)
- 反复重试(大部分时间失败)
- 配置 HTTP_PROXY / HTTPS_PROXY,curl 能通但 docker pull 死活不走代理
- 修改
~/.docker/config.json(部分生效,但 ghcr.io 仍然不行)
「镜像搬运法」——把一切网络困难的问题,变成一个 scp 问题。
镜像搬运法 · 100% 可靠的路线
经历以上所有坑之后,100% 可靠的方法是:用一台能顺畅访问外网的机器(你的电脑开加速,或一台海外服务器)拉取镜像,打包成 tar 文件,传到国内服务器加载。
完整操作流程
为什么这个方法靠谱?
| 问题 | 镜像搬运如何解决 |
|---|---|
| CentOS 版本低 | ✅ 不需要宿主机装任何运行时 |
| Node.js 装不上 | ✅ 环境在容器里,与宿主机无关 |
| 网络不通 | ✅ 只需一次 scp 传输,不需要服务器通外网 |
| 代理不好使 | ✅ 完全不依赖代理 |
| 反复失败 | ✅ 一次拉取成功,永久使用 |
权限 · 跨域 · 避坑指南
配置文件权限问题
现象:容器启动后报 EACCES: permission denied, mkdir '/home/node/.openclaw/agents'
Web UI 无法访问
现象:浏览器打开 http://IP:18789 显示 origin not allowed 或
pairing required
解决:修改配置文件 /root/openclaw/config/openclaw.json,将 allowedOrigins
设置为通配:
国内部署的最优路径
如果你也在国内服务器上部署 OpenClaw,我的建议是:
- ✅ 放弃在宿主机直接装,拥抱 Docker(也出于一定的安全角度考量)
- ✅ 放弃代理、镜像加速,直接用「镜像搬运」法
- ✅ 准备一台能顺畅访问外网的机器(你的电脑 + 科学上网,或一台海外服务器)
- ✅ 一条命令拉取,一条命令打包,一条命令传输,一条命令导入
接下来配置 QQ BOT 的教程比较多,这里就不再多介绍了。大功告成!