一句话:这篇就是把 OpenClaw 在 Linux 上从 0 搭起来,按“宝宝都能学会”的思路写清楚:安装 → 配置 → 跑起来 →(可选)域名反代进 Control UI。
我自己踩过的坑也会写出来(比如反代 WebSocket 授权、systemd 重复实例、端口冲突、htpasswd 权限 500 等)。
- ✅ 一台 Linux 服务器(Ubuntu/Debian 都行)
- ✅ CPU/内存别太抠:建议 2H4G 起步(低配也能跑,但更容易各种“卡/超时/不回”)
- ✅ 一个域名(可选:想在浏览器远程打开 Control UI 才需要)
- ✅(可选)Telegram Bot(如果你想用 Telegram 当入口)
- 不要把 OpenClaw 的管理端口直接裸奔公网;要么只监听 ,要么反代加认证。
- 反代推荐走 trusted-proxy + BasicAuth,不然 WebSocket 授权经常翻车。
- 同一台机器上别让 OpenClaw 启两个实例(user service + system service 混着来),很容易端口冲突/token mismatch。
OpenClaw 需要 Node 22 或更新版本。我更推荐用 nvm(省心,不污染系统包):
如果你用 root 跑服务,确认一下 HOME(真遇到过 HOME 为空导致异常的环境):
如果你想在手机/外网浏览器直接打开控制台,一般会做 Nginx 反代。这里我给一套最稳的配置:BasicAuth + trusted-proxy。
因为浏览器的 WebSocket 场景下,很多时候你没法“优雅地”在请求里带 Authorization(或者某些路径能带,WS 又断)。所以我最终稳定下来的方式是:反代负责认证,OpenClaw 只相信反代转发的用户身份。
(示意)你需要在 里启用 trusted-proxy,并指定需要的头:
下面是最关键的几行:一定要把 、 这些头带上,不然 OpenClaw 会直接拒绝(你会看到类似 的日志)。
现象:输入账号密码后直接 500,Nginx error.log 里是:
处理:确保 htpasswd 文件可读 + 目录可遍历(不要把文件放在 nginx 进程读不到的目录权限里)。
宝塔站点配置容易被覆盖,建议把反代片段放到 extension include 里(不同站点目录不一样):
九成是你启动了不止一个 OpenClaw(比如 user service + system service 同时存在)。先看端口到底谁占了:
优先检查:
- Nginx 有没有转发 /
- OpenClaw trusted-proxy 的 有没有写了但没转发
多数不是 OpenClaw 自己挂了,而是上游模型超时/网络抖动。我的顺序是:
- 把 OpenClaw 的全局 timeout 调大一点(比如 1800 秒)
- 看 provider 是否频繁 timeout
- 看系统是否异常(比如僵尸进程暴涨、某容器疯狂 fork)
到这里,你至少已经做到:OpenClaw 能在 Linux 上稳定常驻,控制台能打开,远程访问也不会裸奔。
后面如果你要接 Telegram/WhatsApp,再加 allowlist(避免群消息乱入),再单独写一篇会更清楚。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/227407.html