一个伪linux粉丝的blog

  1. 首页
  2. network
  3. 正文

openclaw

1 2 月, 2026 251点热度 0人点赞 0条评论

背景

引子:项目名字比代码变得还快

这两周,一个叫做 OpenClaw(或Moltbot,又或者 Clawdbot)的AI Agent突然大火,据说还带动了 Mac mini m4 的销售。客户和领导在群里一句"这个很火,看看能不能上架一个镜像",我便开始了这段折腾之旅。

首先困扰我的不是技术,而是这项目改名太频繁了——从 Clawdbot 到 Moltbot 再到 OpenClaw。我 git clone 时看名字都觉得是不是自己下错了,而且隔天升级发现又变了一个名字了。我只能安慰自己:名字不重要,重要的是它确实能自动给你打工。

我们的目标是:构建镜像 → 上架算力云平台 → Demo 给客户看。听起来简单,对吧?

 

折腾过程

第一章:本地安装同时构建镜像

官方提供了三种安装方式,最香的自然是一键脚本 curl -fsSL https://openclaw.ai/install.sh | bash。 官方提供了 Dockerfile和docker-setup.sh命令,但是没上架镜像,是不是担心流量太贵,于是我尝试来构建一下镜像。 我打的镜像在这里 cnrock/openclaw:2026.1.30

 

构建搞了2天,主要原因是 vps 内存不给力,切换本地构建嘛,网络不给力。

几个报错

第一个报错 frame too large

1
2
ERROR: listing workers: failed to list workers: Unavailable: connection error:
desc = "error reading server preface: http2: frame too large"

解决套路很常规:重启试试。

1
2
3
4
5
6
7
8
9
10
11
# 重启 Docker 服务
sudo systemctl restart docker
 
# 删除现有 Buildx 构建器
docker buildx rm mybuilder 2>/dev/null || true
 
# 创建新的构建器
docker buildx create --use --name multiarch-builder
 
# 重新运行构建
docker buildx build --progress=plain --platform linux/amd64,linux/arm64 -f Dockerfile -t cnrock/openclaw:v1 . --push

第2个报错 JavaScript Heap Out of Memory

1
2
3
#21 370.0 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
370.3  3: 0x1216eb7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]
ERROR: failed to solve: process "/bin/sh -c OPENCLAW_A2UI_SKIP_MISSING=1 pnpm build" did not complete successfully: exit code: 134

 

在构建 ARM64 镜像时,Node.js 默认内存限制在多架构编译压力下直接爆掉:

vps 没个大内存机器真别玩多架构构建。

鉴于节点还是有 swap 内存的,尝试加参数看看,后来没这个报错了

1
2
# 设置 Node.js 内存限制
ENV NODE_OPTIONS="--max-old-space-size=4096"

第3个报错  no active session

no active session

找到了这个 issue https://github.com/docker/buildx/issues/456

引出了另一篇 ,buildx 升级,待后续有空写,暂时放弃buildx 多架构,直接本地docker 构建通过了

1
ERROR: failed to solve: DeadlineExceeded: failed to push cnrock/moltbot:v1-amd64: no active session for 2n6drhn4mikq0mn14h621ypw7: context deadline exceeded

 

第二章:安装的"灵魂拷问"

使用很香的一键脚本安装,真正的交互式"盘问"开始了。这安装程序设计得非常"贴心"——贴心到每个步骤都要你确认,仿佛在说:**"你真的知道自己在干什么吗?"**

第一关:安全警告

 

1
2
3
4
5
```
Please read: https://docs.clawd.bot/security
Clawdbot agents can run commands, read/write files...
I understand this is powerful and inherently risky. Continue?
```

 

翻译一下:"这玩意儿能删你根目录,确定要继续吗?" 当然要,来都来了。

### 第二关:模型选择困难症
安装程序列出了一长串模型提供商,从 OpenAI、Anthropic 到国内的 Qwen、MiniMax,甚至还有 Venice AI、Z.AI 这种小众选择。

1
2
3
4
5
6
7
8
9
```
◆ Model/auth provider
│ ● OpenAI (Codex OAuth + API key)
│ ○ Anthropic
│ ○ MiniMax
│ ○ Qwen
│ ○ Moonshot AI
│ ...(还有十几个选项)
```

 

我先选择了 **Skip for now**,因为后面可以通过配置文件注入,更适合容器化场景。

第三关:Channel 选择

程序问你要连哪些聊天渠道:Telegram、WhatsApp、Discord、Slack、钉钉...足足列出了十几种。我选择了 **Skip for now**(后来手动配置了qwen,这是后话)。

第四关:Homebrew 的执念

程序强烈推荐安装 Homebrew 来管理依赖,甚至给出了安装命令。但在容器里装 Homebrew? 但直接安装又告诉你 root 用户别玩 brew。

我选择了 npm 作为包管理器,并跳过了 Skill 依赖安装(后面发现有些功能确实因此受限,这是取舍)。

 

第四章:网关暴露的"安全悖论"

安装完成后,程序贴心地提示:

Dashboard link (with token): http://127.0.0.1:18789/?token=。。。。。。。
No GUI detected. Open from your computer:
ssh -N -L 18789:127.0.0.1:18789 [email protected]

默认绑定在 127.0.0.1(loopback),意味着只有本机能访问。这对于服务器部署很不友好——我总不能每次看面板都先 SSH 打隧道吧?

于是我想:改成 LAN 模式,监听所有网卡试试:

1
2
3
4
5
```bash
clawdbot configure --section gateway
# 选择 LAN (All interfaces)
clawdbot gateway restart
```

改完访问,浏览器给了我一个冰冷的错误:

1
2
3
```
disconnected (1008): control ui requires HTTPS or localhost (secure context)
```

 

**顿悟时刻**:这是个安全设计!浏览器不允许在非安全上下文(非 HTTPS 或 localhost)中传输敏感 token。这意味着:

1. **本地开发**:用 localhost 没问题
2. **服务器部署**:必须上 HTTPS 证书
3. **直接暴露 IP**:被明确禁止

这也解释了为什么网上有那么多暴露的 OpenClaw 面板被扫描出来——很多人为了图方便,要么用 HTTP 暴露,要么把 token 写死在配置里。设置其他更多的key信息也暴露了。

 

第五章:使用篇

开始 接入国产模型(通义千问)

clawdbot configure --section model

既然要上架国内算力云,用 OpenAI API 不太现实。我接入了阿里云的通义千问:

1
2
3
4
5
6
◆ Model/auth provider
│ ○ OpenAI (Codex OAuth + API key)
│ ○ Anthropic
│ ○ MiniMax
│ ● Qwen (OAuth)
│ ○ Moonshot AI

会让你在线激活

1
2
3
│  Open https://chat.qwen.ai/authorize?user_code=QL8QXQYK&client=qwen-code to approve  │
│  access.                                                                             │
│  If prompted, enter the code QL8QXQYK.

顺便解决

# 重启网关生效
clawdbot gateway restart

这里有个有趣的细节:Qwen 的 API 兼容 OpenAI 格式(compatible-mode/v1),这大大降低了接入成本。国内大模型厂商都在走"兼容 OpenAI 接口"的路线,这是一种务实的选择——既照顾了开发者习惯,又降低了迁移成本。

试玩

Webui 截图

访问看看,如果不带token ,会提示未授权。

bot在自动干活中

尾声:安全的冷思考

在整理这篇文章时,我搜索了一下暴露在互联网上的 OpenClaw/Moltbot 面板,结果触目惊心:

- 大量面板直接使用 HTTP 暴露,token 直接写在 URL 参数里
- 有些甚至配置了允许任意 IP 访问的 CORS
- 更严重的,有些实例的
.clawdbot 目录权限是 755,其他用户可读

这与各大云厂商(AWS、腾讯云、阿里云)力推"一键部署 Moltbot 云服务"形成了鲜明对比。**矛盾在于**:云服务需要便捷性,往往意味着更宽松的默认配置;而 AI Agent 的权限又极大(能执行命令、读写文件、访问代码仓库)。然后据说云厂商又开始搞各种阉割版。

 

给读者的建议:

没搞懂前千万别图方便随便暴露服务。

1. **永远不要**在没有 HTTPS 的情况下暴露 Control UI
2. **定期运行**
clawdbot security audit,关注权限警告
例如这个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
openclaw security audit
 
🦞 OpenClaw 2026.1.30 (76b5208) — Your terminal just grew claws—type something and let the bot pinch the busywork.
 
OpenClaw security audit
Summary: 1 critical · 2 warn · 1 info
Run deeper: openclaw security audit --deep
 
CRITICAL
models.small_params Small models require sandboxing and web tools disabled
  Small models (<=300B params) detected:
- public/deepseek-r1-distill-qwen-32b (32B) @ agents.defaults.model.fallbacks (unsafe; sandbox=off; web=[web_fetch, browser])
Uncontrolled input tools allowed: web_fetch, browser.
Small models are not recommended for untrusted inputs.
  Fix: If you must use small models, enable sandboxing for all sessions (agents.defaults.sandbox.mode="all") and disable web_search/web_fetch/browser (tools.deny=["group:web","browser"]).
 
WARN
gateway.trusted_proxies_missing Reverse proxy headers are not trusted
  gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client checks cannot be spoofed.
  Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.
fs.credentials_dir.perms_readable Credentials dir is readable by others
  /root/.openclaw/credentials mode=755; credentials and allowlists can be sensitive.
  Fix: chmod 700 /root/.openclaw/credentials
 
INFO
summary.attack_surface Attack surface summary
  groups: open=0, allowlist=0
tools.elevated: enabled
hooks: disabled
browser control: enabled

 

3. **使用 sandbox** 模式限制 Agent 的文件系统访问范围
4. **Token 管理**:考虑使用反向代理(Nginx/Caddy)做额外的鉴权层,不要只依赖应用自身的 token

 

结语:追风者的自白

从 "这名字到底叫啥" 到 "这面板千万别乱暴露",这趟追风之旅充满了技术细节的魔鬼。OpenClaw/Moltbot/Clawdbot 确实是一个强大的工具——它能读代码、改配置、甚至自己 debug,但它也需要使用者有足够的安全意识。

最后附上我们的双架构镜像(如果构建成功的话):

bash
docker pull cnrock/openclaw:2026.1.30
`

或者,如果你也想体验构建过程的"乐趣",可以从上面的 Dockerfile 开始,记得给 Node.js 多分配点内存。

**毕竟,追风没问题,但别被风刮跑了。**

---

参考资料:

- OpenClaw 官网:https://openclaw.ai/
- Moltbot 项目:https://www.molt.bot/
- AWS 部署指南:https://aws.amazon.com/cn/blogs/china/deploying-moltbot-to-the-cloud/

相关文章:

  1. eName联合Google Adwords广告体验活动
  2. Google adwords团队很低调
  3. Gmail默认开启https
  4. 试玩大波Dabr
标签: Clawdbot Moltbot OpenClaw
最后更新:1 2 月, 2026

wanjie

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

This site uses Akismet to reduce spam. Learn how your comment data is processed.

归档
分类
  • network / 335篇
  • Uncategorized / 116篇
  • unix/linux / 124篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 14篇
  • 美剧 / 3篇
  • 美图共赏 / 21篇
  • 英语学习 / 3篇
标签聚合
Nginx 泰国 dreamhost空间 职责 网站运营 brew d90 刷机 浏览器 nexus ldap docker 邮件归档 虚拟主机 Linux VPS deepseek LinuxDeepin debian Google Voice Google Adwords squid gitlab kubectl webhook dreamhost Google k8s Ubuntu kernel

COPYRIGHT © 2008-2025 wanjie.info. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang