前言
最近 OpenClaw 特别火,我也准备跟风研究了一下。它最吸引我的一点,就是可以完全当成自己的私人 AI Agent,帮我自动干活—— 不用把数据丢给第三方,全部跑在自己家里的服务器上,隐私、安全、可控性都拉满。

简单说,OpenClaw 就是一个私有化部署的个人智能助手。你可以把它理解成一个只属于你自己的专属代理:消息处理、自动化任务、AI 对话、各种重复操作,都能交给它在后台默默搞定。而且它轻量、开源、基于 Node.js,跑在 PVE 的 LXC 里刚刚好,不占资源、稳定性还高。
正好我手里有现成的 PVE环境,干脆就创建全新的LXC装一遍,把完整流程、以及一路上踩过的所有坑都记录下来。后面想自己搭一个私人 Agent 的朋友,可以直接照着这篇避坑。
系统构架
我家的软路由构架,见前文: 从软路由到 Hugo:我的家庭服务器搭建全记录

之前在玩pve的时候,已经创建了2个LXC模板,一个是Debian核心,一个是Ubuntu核心,这次用Ubantu的模板直接克隆。至于什么是VM什么是LXC,两者的区别,可以自行搜索一下,这里略过。至于LXC模板简单的理解就像Ghost,最开始创建LXC把基础配置(系统升级、SSH、网络配置、环境设置等等)搞好以后就可以转成模板,以后再创建LXC就不用再重新来一遍,直接从模板克隆就ok了。自己玩PVE强烈建议像我这样做两个模板。
克隆以后可以修改配置,采用5G内存、50G硬盘、Swap 512M,设置好网络(ip地址要修改,克隆后默认是原模板的ip地址)后开机。


安装流程
直接SSH登录终端。我用Mobaxterm

登录后也可以修改掉默认的原模板的root密码,为了安全最好每个LXC、VM设置不同的root密码。
第一步 先升级系统
sudo apt update && sudo apt upgrade -y

显示已经升级到了最新的状态。
第二步 直接运行官方安装脚本(最推荐)
curl -fsSL https://openclaw.ai/install.sh | bash
- 这个脚本会:
- 检查/安装 Node.js(如果没有或版本太旧,会自动从 nodesource 拉最新 22.x 或更高)。
- 通过 npm 全局安装 openclaw CLI。
- 安装完成后自动进入 onboarding 向导(或部分情况下会提示你运行下一步)。
第一个坑:

运行后报错。这是 Ubuntu 22.04(jammy)常见问题:系统自带的 curl 版本偏旧(通常 7.81.x 或 7.88.x),搭配 OpenSSL 3.0.x 时,对某些服务器的 TLS 连接处理严格,导致“意外 EOF”视为错误(OpenSSL 3 加强了 truncation attack 防护,但旧 curl 没完全适配)。
推荐方案:手动安装 Node.js 22(最稳、最快)
在终端执行下面命令:
-
添加 NodeSource 仓库(这步用 apt,不依赖 curl):
apt update apt install -y ca-certificates curl gnupg # 确保 ca-certificates 最新 mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg -
添加 Node 22 源:
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list -
更新并安装 Node.js:
apt update apt install -y nodejs -
验证 Node 版本(必须 ≥22):
node -v # 应该输出 v22.x.x 或更高 npm -v

Command ’npm’ not found表示npm还没有安装,需要安装
apt update
apt install npm

表示环境都已装好。
第二个坑:
现在可以全局安装 OpenClaw:
npm install -g openclaw@latest

报错了,可能原因:
- LXC 网络桥接(vmbr0)配置小问题,导致 TLS 握手过程中包丢失或超时。
- 容器 DNS 解析慢/不稳(/etc/resolv.conf 指向主机或不靠谱的服务器)。
- MTU 不匹配(Proxmox 默认 1500,但有些桥接或 ISP 碎片化导致 TLS 包被丢)。
- 临时网络抖动、Proxmox 主机负载、或 registry.npmjs.org 那边短暂问题。
- 极少数是旧 OpenSSL/curl + Node 兼容。
测试一下:
root@openclaw:~# curl -I https://registry.npmjs.org/openclaw
curl: (35) error:0A000126:SSL routines::unexpected eof while reading
这个 curl: (35) error:0A000126:SSL routines::unexpected eof while reading 错误是 Ubuntu 22.04(jammy)上非常典型的 OpenSSL 3.0 + 旧版 curl 的兼容问题。
- Ubuntu 22.04 自带 curl 7.81.0(或类似旧版),而 OpenSSL 3.0.x 对 TLS 连接的“意外 EOF”(服务器没发 close_notify 就断开)处理更严格,导致 curl 把这当成错误。
- npm install 底层也用类似机制(Node.js 的 https 模块依赖 OpenSSL),所以你看到 ECONNRESET(连接被重置)。
- registry.npmjs.org 有些响应就是这样(服务器主动关闭连接),旧 curl/OpenSSL 组合就报错。
升级 curl 到最新版(永久解决,推荐如果上面临时方案嫌麻烦) Ubuntu 22.04 的 curl 太旧,手动编译最新 curl(8.x+ 已修复兼容):
apt update
apt install -y build-essential libssl-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libidn2-0-dev libpsl-dev libkrb5-dev libcurl4-openssl-dev autoconf libtool pkg-config
cd /tmp
wget https://curl.se/download/curl-8.10.1.tar.gz # 或查最新版 https://curl.se/download/
tar xzf curl-8.10.1.tar.gz
cd curl-8.10.1
./configure --with-openssl --with-nghttp2 --prefix=/usr/local
make -j4
make install
ldconfig
升级了curl还是报错。
第三个坑:
换方案:先用临时环境变量绕过(无需编译,立即见效)
在终端里运行:
export OPENSSL_CONF=/dev/null
npm install -g openclaw@latest
- 为什么有效?这个 env var 会让 OpenSSL 忽略 unexpected EOF(临时把严格模式关掉),npm 继承后就能正常下载包。
确实可以了

现在安装中…
但是感觉速度很慢
加速的几个实用办法(现在可以试)
-
切换到淘宝镜像(中国用户最有效,速度能翻几倍):
npm config set registry https://registry.npmmirror.com # 然后继续原来的安装命令(不用重跑 export,因为已经 export 过了) npm install -g openclaw@latest(如果已经在跑,可以 Ctrl+C 中断,再跑这个 config + 重新 install,它会从缓存继续,不会全重下。)
第四个坑:
确实很快,不幸的是又报错了

问题很清楚:你当前的 Node.js 版本是 v12.22.9(npm 8.5.1),但 OpenClaw 要求 Node ≥22(官方文档和 npm 包都明确指定 Node 22 或更高)。
- 错误核心:@whiskeysockets/baileys(OpenClaw 依赖的 WhatsApp 多设备协议库)在 postinstall 脚本里检查 Node 版本,如果 <20 就直接报错退出(This package requires Node.js 20+)。
- 其他 WARN(如 minimatch@9、p-timeout@7 等)也是因为这些新包的 engines 要求 Node 14/16/20+,v12 完全不兼容。
- 切换淘宝镜像后下载快了,但版本不匹配导致安装失败。
你的 LXC 是 Ubuntu 22.04,默认 apt 安装的 Node 可能是旧版(或之前手动装错了)。需要升级/重装 Node 到 22.x。
推荐步骤(在 终端执行)
-
先卸载旧 Node(清理干净,避免冲突):
apt remove --purge nodejs npm -y apt autoremove -y rm -rf /usr/local/bin/node /usr/local/bin/npm /usr/local/lib/node_modules rm -rf /root/.npm /root/.node-gyp hash -r # 刷新命令缓存 -
用 NodeSource 官方脚本安装 Node 22.x(最稳,官方推荐):
curl -fsSL https://deb.nodesource.com/setup_22.x | bash - apt update apt install -y nodejs这会自动加源、装 Node 22 + npm 最新。
还是报错,最后手工下载安装成功!
- 用 HTTP 临时拉取 deb 包(绕过 HTTPS) 先手动下载 deb 包(用新 curl):
cd /tmp
/usr/local/bin/curl -O https://deb.nodesource.com/node_22.x/pool/main/n/nodejs/nodejs_22.22.0-1nodesource1_amd64.deb
-
如果下载成功(文件大小 ~37MB),直接 dpkg 安装:
dpkg -i nodejs_22.22.0-1nodesource1_amd64.deb apt install -f -y # 修复依赖
- 装好后再次验证
运行下面两条命令确认:
node -v
npm -v

环境终于ok了
再次安装
现在网络问题和 Node 版本问题都解决了,安装应该很顺:
-
保持淘宝镜像加速(你之前切过):
npm config get registry # 确认是 https://registry.npmmirror.com -
清理缓存 + 安装(推荐用 –force 避免旧缓存干扰):
npm cache clean --force npm install -g openclaw@latest
最终成功。
版本验证:openclaw –version 2026.2.22-2

128 packages are looking for funding run npm fund for details 这是什么意思 要管他吗
完全不用管它,可以忽略。
这是什么意思?
- npm 在安装包时,会统计你安装的依赖包里,有多少个包的作者/维护者开启了“寻求资助”(funding)的选项。
- 这些包通常会在它们的 package.json 里加一个 funding 字段,指向 Patreon、GitHub Sponsors、Buy Me a Coffee、Open Collective 等捐款链接。
- “128 packages” 就是说,这次安装的 703 个包里,有 128 个作者公开说“欢迎支持我”。
- 这是一个友好提醒,不是错误、不是警告、不是问题,只是 npm 的一个小功能(从 npm 6+ 开始就有)。
要不要运行 npm fund?
- 不用。运行它只会列出那些 128 个包的捐款链接(比如作者的 GitHub Sponsors 页面),让你手动去捐款。
- 99% 的用户都不会运行它,也不会捐款(开源包作者也知道这很正常)。
- 除非你特别喜欢某个包,想支持作者,否则完全可以无视。
怎么让它别再显示?
如果你觉得这个提示烦人(下次 install/update 时还会出现),可以全局关掉:
npm config set fund false
- 这样以后所有 npm 操作都不会再显示 “packages are looking for funding” 了。
- 如果以后想恢复:npm config delete fund 或 npm config set fund true。
总结
- 核心坑点:Ubuntu 22.04 的 curl+OpenSSL 3.0 兼容问题、Node.js 版本低于 22 的兼容性问题、LXC 网络 / DNS 导致的 npm 下载失败;
- 关键解决方案:临时设置
OPENSSL_CONF=/dev/null绕过 SSL 校验、切换淘宝 npm 镜像提速、彻底重装 Node.js 22.x 确保版本达标; - 无关提示:npm 的 funding 提醒仅为开源作者捐款引导,可直接忽略或全局关闭。