这"龙虾"最近火得连楼下卖煎饼的大爷都在问怎么养,但你真要在Ubuntu上把这玩意儿跑起来,还得打通微信、浏览器这些渠道,里面的坑比龙虾壳上的刺还多。今天这篇就手把手教你从裸机到上线,全程Docker隔离,保证你的服务器不被这AI"钳子"夹坏。
一、先搞明白:这"龙虾"到底是个啥?
别被网上那些"AI取代人类"的标题党忽悠了。OpenClaw(社区爱称"龙虾")说白了就是一个住在你服务器里的数字长工。它由奥地利开发者Peter Steinberger在2025年底开源,原名Clawdbot,因为跟Claude太像被发了律师函,改成Moltbot(蜕皮的龙虾),最后定名OpenClaw。
跟ChatGPT那种"嘴炮型AI"不同,这货是"动手型"的。你给权限,它真能打开浏览器填表单、操作Excel、发微信消息。但记住,它是个双刃剑——工信部已经预警过,配置不当的OpenClaw实例可能被黑客当后门用。
咱们今天要部署的3.13版本(写稿时最新稳定版),核心架构就四块:
- Gateway(网关):本地WebSocket服务器,默认蹲守在18789端口
- Agent(智能体):干活的大脑,靠大模型API驱动
- Skills(技能):教龙虾新本领的说明书,Markdown或脚本格式
- Memory(记忆):它自己写的"日记",记着你的喜好和任务历史
二、Ubuntu环境准备:别让权限坑了你
我假设你已经有台Ubuntu 22.04/24.04的服务器(腾讯云阿里云都行)。第一件事:把Docker搞定,这是后续所有隔离措施的基础。
先卸载旧版(如果有)
sudo apt-get remove docker docker-engine docker.io containerd runc安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg加源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null安装Docker
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin关键一步:免sudo运行,不然后续OpenClaw调Docker权限会炸
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker ps # 验证下,不出permission denied就对了防火墙记得开18789端口,云服务器要去控制台安全组放行,这是新手最容易卡住的地方。
三、Docker部署OpenClaw:把龙虾关进玻璃缸
官方推荐用Docker Compose部署,这样环境隔离最安全。咱们建个目录专门伺候这"龙虾":
mkdir ~/openclaw-lab && cd ~/openclaw-labcat > docker-compose.yml << 'EOF'
version: '3.8'
services:
openclaw:
image: ghcr.io/openclaw/openclaw:3.13
container_name: openclaw-lobster
restart: unless-stopped
ports:
- "18789:18789"
environment:
- NODE_ENV=production
- OPENCLAW_PORT=18789
# 大模型API Key,这里以OpenAI为例,换成国产模型也行
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_API_BASE=${OPENAI_API_BASE:-https://api.openai.com/v1}
volumes:
# 持久化存储,记住你的"龙虾"会越长越聪明
- ./memory:/app/memory
- ./skills:/app/skills
- ./config:/app/config
networks:
- clawnet
networks:
clawnet:
driver: bridge
EOF重点来了:volumes那三块挂载是精髓。memory存它的长期记忆,skills放你自定义的技能插件,config放配置文件。这样即使容器炸了,你的"养虾成果"也不会丢。
启动前把API Key塞进环境变量文件:
echo "OPENAI_API_KEY=sk-your-key-here" > .env
echo "OPENAI_API_BASE=https://api.openai.com/v1" >> .env # 如果用国产模型,换成对应base urldocker compose up -d等个一两分钟,访问http://你的服务器IP:18789,看到初始化界面就算成了。首次登录会让你设管理员密码,设复杂点,这玩意被爆破就全完了。
四、接入微信:让龙虾蹲在你的聊天列表里
这是国内玩家最关心的功能。OpenClaw支持多种接入渠道,微信是最实用的,但也是合规风险最高的。这里只讲技术原理,实际使用前请务必查阅微信官方文档,别违规操作导致封号。
微信接入本质上是通过企业微信API或微信iPad协议(WeChaty等库)转发消息。咱们用Docker再启一个微信适配器服务,跟主OpenClaw隔离:
在docker-compose.yml里追加服务
wechat-adapter:
image: wechaty/wechaty:latest
container_name: openclaw-wechat
restart: unless-stopped
environment:
- WECHATY_PUPPET_NAME=wechaty-puppet-padlocal # iPad协议,需token
- OPENCLAW_GATEWAY=http://openclaw:18789
networks:
- clawnet
depends_on:
- openclaw配置里有个wechaty-puppet-padlocal,这是目前较稳定的iPad协议方案,但需要申请token(有免费额度)。配置好后,你的微信消息就会通过WeChaty转发给OpenClaw处理,回复再走原路返回。
切记:个人微信用协议接入属于灰色地带,生产环境建议用企业微信官方API,虽然功能受限但合法合规。
五、浏览器自动化:给龙虾装上"钳子"
OpenClaw最骚的操作是能控制浏览器。在./skills目录下建个新技能,让它帮你查资料:
mkdir -p skills/web-search
cat > skills/web-search/skill.md << 'EOF'
name: web-search
description: 自动打开浏览器搜索信息并提取结果
tools:
- browser
- read
----
当用户要求搜索信息时:
1. 使用browser工具打开百度或Google
2. 输入关键词并执行搜索
3. 使用read工具提取前5条结果标题和链接
4. 整理成Markdown格式返回
EOF这个Markdown文件就是Skill(技能说明书)。OpenClaw的Agent读到后,就知道遇到搜索需求该调浏览器工具。实际执行时,它会在Docker里启动一个无头Chrome(Chromium),完成任务后自动销毁,不会污染你的宿主机。
想玩更高级的?可以接playwright或puppeteer技能包,让它自动填表、抢票、爬数据。但警告:别拿它干坏事,浏览器自动化最容易触发反爬机制,IP被封了别怪我。
六、安全加固:给你的"龙虾"上把锁
前面说过,OpenClaw默认配置可能有安全风险。咱们既然用了Docker,就必须做这几层防护:
1. 网络隔离
上面的Compose配置里用了clawnet这个自定义网络,千万别把18789端口直接暴露到公网(除非你有SSL+强认证)。建议用Nginx反代加Basic Auth:
server {
listen 443 ssl;
server_name your-domain.com;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:18789;
proxy_http_version:1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}2. 权限最小化
OpenClaw的容器默认跑的是root,这很危险。改一下Compose,用非root用户跑:
services:
openclaw:
image: ghcr.io/openclaw/openclaw:3.13
user: "1000:1000" # 映射宿主机普通用户
...其他配置3. 资源限制
防止你的"龙虾"发疯吃光服务器资源:
deploy:
resources:
limits:
cpus: '2'
memory:4G
reservations:
cpus: '0.5'
memory:512M4. 审计日志
企业级部署一定要开审计。在config目录下放个audit.json:
{
"auditEnabled": true,
"logPath": "/app/logs/audit.log",
"logCommands": true,
"logAccess": true
}这样它每执行一个shell命令、每访问一次文件,都有记录。万一出事了能溯源。
七、实战:让它自动处理日报
来,咱们跑个完整流程。假设你是个项目经理,每天要让"龙虾"自动:
- 登录企业邮箱(浏览器自动化)
- 下载昨天的日报附件(文件操作)
- 解压并分析Excel内容(代码执行)
- 把统计结果发到你微信(消息推送)
在Skills目录建个daily-report:
----
name: daily-report
schedule: "0 9 * * *" # 每天早上9点
任务流程:
- 使用browser登录mail.yourcompany.com
- 搜索主题含"日报"且日期为昨天的邮件
- 下载附件到/tmp/reports/
- 使用python脚本分析Excel(pandas读取,统计完成率)
- 生成文字摘要
- 调用wechat-adapter发送消息给用户
然后在OpenClaw的Web面板里激活这个Skill,设置好你的企业邮箱凭证(用环境变量或加密存储,千万别硬编码在skill文件里)。
第二天早上9点,你就会收到微信消息:"昨日日报已收齐,平均完成率87%,张三 delay 了任务..."。
八、踩坑总结:这些雷我帮你踩过了
- 内存爆炸:OpenClaw默认会缓存大量对话历史,小内存服务器(<2G)一定加swap,否则OOM杀进程哭都没地方哭。
- 微信被封:频繁发消息或加好友会触发风控。建议把消息频率限制在每分钟5条以内,且别用它群发营销信息。
- Skills不生效:改完skill文件需要重启容器,或者进Web面板点"Reload Skills",热加载有时有延迟。
- 中文乱码:Ubuntu服务器默认locale可能没设UTF-8,先执行locale-gen zh_CN.UTF-8,不然微信发过来的是乱码。
- API Key泄露:千万别把.env文件提交到GitHub。OpenClaw社区已经有案例,Key泄露后被薅羊毛,一晚上烧了2000刀。
---
写到这,你的Ubuntu服务器上应该已经跑着一只听话的"数字龙虾"了。它每天帮你处理重复性工作,你在旁边看着就行。但记住,它只是个工具,不是爹。别指望它解决所有问题,也别完全放手让它自己乱搞—— especially 涉及钱和隐私的操作,必须人工确认。
最后提醒:OpenClaw迭代速度极快,3.13版本的配置到了3.14可能就有变动。部署前务必查阅官方文档。祝养虾愉快,记得给服务器备份,别让它"蜕皮"的时候把你也蜕了。
夜雨聆风