Ubuntu 24.04 LTS部署OpenClaw实战:从安装到AI助理微信接入
说实话这两年AI助理类的项目我折腾了不少但OpenClaw算是我最近玩得最上头的一个。不是因为它名字起得酷而是它真正能把大模型塞进微信、Telegram这些日常聊天工具里让一个AI角色帮你回消息、查资料、做总结甚至调度一些自动化任务。这篇教程记录的是我在Ubuntu 24.04.3 LTS上把OpenClaw完整装起来、跑通的全过程。适合两类人看一是刚接触Linux、想在虚拟机里搭一个AI助理练手的新手二是已经在Windows或macOS上折腾过、想换到更干净的Linux环境做正式部署的老玩家。我写这篇东西的初衷很简单网上关于OpenClaw的安装教程不算少但大多是零散的命令堆砌很少有人把“为什么这么做”“这一步出错了怎么办”讲清楚。所以这版图文教程我会尽量把每一步的前因后果都交代明白你跟着做就行遇到问题也能知道去哪查、怎么改。1. 项目概述与环境准备1.1 OpenClaw 解决什么问题OpenClaw本质上是一个开源的个人AI助理框架核心能力是把大模型能力接入到即时通讯软件里。你不需要打开一个专门的网页或App去问AI问题而是直接在微信或者Telegram里跟它对话它就能完成问答、内容总结、信息检索、定时任务这一类操作。它的架构大致分三层最底层是模型服务负责真正的推理问答中间是Agent逻辑层负责理解意图、调用工具、管理上下文最上层是渠道接入层负责把微信、Telegram、飞书这些IM的消息转成统一格式再把AI的回复发回去。所以你绑定哪个聊天软件基本就相当于给这个聊天软件装了一个“AI大脑”。对普通用户来说最大的价值是“顺手”。微信本来就是每天打开次数最多的应用不用切来切去AI自动帮你处理消息体验确实不一样。对开发者来说OpenClaw的可玩性在于中间的Agent层你可以给它自定义工具、自定义触发词甚至可以写脚本让它定时干活这就不是简单套壳聊天机器人能比的了。1.2 为什么我推荐 Ubuntu 24.04.3 LTS先说结论如果打算长期稳定跑OpenClawUbuntu LTS长期支持版是我最推荐的操作系统。24.04.3是当前24.04系列的最新维护版本内核、驱动、安全补丁都在持续更新官方支持周期可以覆盖到2029年。相比WindowsUbuntu做服务器部署有几个天然优势。第一系统资源占用低同样的机器配置Ubuntu跑Docker容器比Windows跑WSL或者Hyper-V要轻量得多。第二命令行生态完整OpenClaw部署过程中大量操作都是通过终端完成的Linux的shell环境比在Windows上折腾PowerShell要顺手得多。第三Docker在Linux上就是原生进程没有中间虚拟化层出问题排查起来也更简单不会出现各种莫名其妙的网络适配层报错。当然选择24.04.3还有一个现实原因OpenClaw官方部署脚本和文档对Ubuntu/Debian系的适配最积极遇到问题去找资料Linux平台上的案例和解决方案也最多。热词里有一条“openclaw could not safely verify the wsl2 environment”就是很多人在Windows WSL2里部署时碰到的后面我会专门讲这个坑怎么处理。1.3 三种典型部署环境怎么选在正式安装Ubuntu之前先想清楚自己用哪种方式跑这直接决定了后面的操作路径。我把常见方案对比了一下部署方式优点缺点适合场景物理机裸装Ubuntu性能最好长期运行稳定Docker无虚拟化损耗占用一台机器安装时分区需谨慎家庭服务器、NAS旁路、长期在线服务VMware/VirtualBox虚拟机快照回滚方便随便折腾不怕搞坏内存占用高重启宿主机后需要手动启虚拟机新手练手、体验功能、测试配置WSL2启动快与Windows共享文件环境校验容易出问题网络模式复杂Docker嵌套层多临时调试不建议正式部署如果你只是第一次接触我建议用VMware先装一遍踩坑成本最低。虚拟机里出了问题直接回滚快照不用重装系统。等你把整个流程跑熟了、确认要7x24小时运行再迁到物理机上配置基本不用改太大。有一点要提醒如果你选择WSL2千万别直接在WSL里用脚本硬装OpenClaw热词里那条“could not safely verify the wsl2 environment”报错就是这么来的。后面第5章我会展开讲为什么。2. Ubuntu 24.04.3 LTS 安装与初始化2.1 官方镜像下载与校验安装Ubuntu第一步是下载官方镜像。这里只推荐从Ubuntu官网下载不要用第三方站点转存的镜像避免被塞入后门或者改坏的版本。下载地址就是ubuntu.com/download/desktop选择24.04.3 LTS版本下载ISO文件。下载完之后我强烈建议校验一下文件的SHA256值防止下载过程出错导致安装时莫名其妙失败。Linux和macOS终端里执行sha256sum ubuntu-24.04.3-desktop-amd64.iso把输出的哈希值和官网公布的值比对只要一致就可以放心使用。这一步看起来多余实际遇到过一次ISO包不完整导致安装器中途崩溃的问题从那以后我每次都校验。2.2 制作启动U盘拿到ISO之后需要写入U盘。Windows下推荐用Rufus或者balenaEtcher都是图形化工具选好U盘和ISO直接写入即可。注意写入会清空U盘上所有数据记得先备份里面的文件。如果用的是macOS可以用balenaEtcher或者用命令行dd但dd对新手有点风险建议还是图形化工具更稳妥。U盘建议8GB以上USB 3.0接口写入速度会快很多等的时间少。制作完成之后把U盘插到目标机器上开机进入BIOS/UEFI启动菜单选择从U盘启动。不同品牌的按键不一样多数是F12、F2或者Esc具体可以看你主板/笔记本的提示。选择“Try or Install Ubuntu”进入安装界面。2.3 安装过程中的关键选项怎么选Ubuntu的图形化安装器已经做得很友好但有几个选项值得单独说。第一是语言和键盘布局建议系统语言选中文键盘布局选English (US)这样后续终端操作不容易因为输入法切换出问题。第二是网络连接安装时最好连上网线后面会节省大量等待时间。第三是分区方式新手直接选“Erase disk and install Ubuntu”整盘安装最省心如果双系统选“Install Ubuntu alongside Windows Boot Manager”安装器会自动缩容Windows分区给Ubuntu让出空间。安装类型这一步我要多说两句。分区方案上默认的LVM逻辑卷管理方案适合大多数场景。LVM的好处是后续如果磁盘空间不够可以在线扩容逻辑卷不用重新分区。但如果你只是虚拟机里测试直接默认分区就行不用想太复杂。首次登录会让你创建用户名和密码这个用户名会作为你的sudo管理账号一定要记好。主机名默认就好不强制修改。等安装器跑完重启把U盘拔掉就进入系统了。2.4 安装完必须做的第一轮配置进系统后别急着装OpenClaw先把系统基础环境收拾干净否则后面各种依赖问题能把人搞崩溃。先打开终端执行系统更新sudo apt update sudo apt upgrade -y这一步会把所有软件包升级到最新版本内核补丁、安全更新都在里面非常关键。然后安装几个后面一定会用到的工具sudo apt install -y curl wget git vim net-tools ca-certificates apt-transport-https如果你的机器是远程服务器形态建议顺手开启SSH服务方便从别的电脑连过来操作sudo apt install -y openssh-server sudo systemctl enable --now ssh systemctl status ssh这样以后不管是在沙发上还是地铁上都能随时连到机器上管理OpenClaw。此外还有两件事一是把时区设置成Asia/Shanghai命令是sudo timedatectl set-timezone Asia/Shanghai避免日志时间跟实际对不上二是对中文用户来说如果后面要在这个系统本地看日志、编辑配置最好把中文输入法装好。Ubuntu 24.04桌面版默认带了部分中文输入法支持在Settings - Keyboard - Input Sources里添加“Chinese (Intelligent Pinyin)”即可。3. OpenClaw 部署前置条件3.1 安装 Docker 与 Docker ComposeOpenClaw的运行时依赖很复杂包括Node.js环境、消息队列、数据库等。为了不让这些服务互相踩坑官方推荐用Docker Compose一键拉起整套服务。这也是我推荐用Linux跑的原因之一Linux下Docker就是原生进程稳定且资源开销小。安装Docker的方式很多我推荐用官方脚本命令是在终端执行curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh这个脚本会自动识别系统架构并安装匹配的Docker引擎。装完以后验证一下sudo docker version sudo docker compose version如果系统提示docker compose命令找不到安装一下Compose插件sudo apt install -y docker-compose-plugin为了让当前用户不用每次敲sudo docker把用户加入docker组sudo usermod -aG docker $USER newgrp docker注意加入docker组后需要重新登录一次终端才能生效。这一步做了之后后续所有docker命令都清爽很多。3.2 镜像加速与网络准备国内网络环境下Docker拉取官方镜像经常慢得想骂人。解决办法是给Docker配置registry mirror也就是镜像加速器。编辑配置文件sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json EOF { registry-mirrors: [https://docker.m.daocloud.io] } EOF sudo systemctl restart docker这里我用的daocloud的公共镜像加速端点你还可以根据自己的网络情况换成其他可用的加速地址。配置好之后拉镜像的速度会明显提升。这一步虽然不算必须但对国内用户来说可以省掉大量等待时间。还有一点要确认防火墙。如果这台机器开了ufw防火墙或者云服务器有安全组需要放行OpenClaw需要用到的端口。最简单的方式是先跑起来再看日志缺哪个端口再加哪个。3.3 申请模型服务与 API KeyOpenClaw本身不内置大模型它需要一个模型服务提供推理能力这跟ChatGPT客户端需要账号是同一个道理。部署前你需要提前准备好一个模型服务商的API Key比如你可以在魔塔平台上申请一个模型调用凭证或者选用其他兼容OpenAI接口格式的服务商。在配置文件中模型服务主要涉及三个参数base_urlAPI地址、api_key密钥、model模型名称。不同的模型服务商这三个参数都不一样但格式基本是统一的后面配置OpenClaw的时候把这三个值填进去就行。这里强调一个性价比思路个人玩OpenClaw优先用推理快、价格便宜的模型对话场景不需要太强的复杂推理能力但响应速度要快。你可以同时配置多个模型让OpenClaw在简单对话和复杂任务之间自动分流这个后面配置文件里再细讲。4. OpenClaw 安装与配置全流程4.1 获取安装资源与一键部署环境准备就绪后开始正式部署OpenClaw。官方一般提供两种安装方式一是Docker镜像方式通过docker compose编排二是一键安装脚本。我这次用的是一键脚本方式因为它的启动参数更透明出了问题好排查。首先拉取OpenClaw的安装包并执行安装脚本git clone https://github.com/openclaw/openclaw.git cd openclaw ./scripts/install.sh脚本会自动检测系统环境、拉取所需的Docker镜像、生成必要的数据目录。步骤不算多但中途会下载不少镜像视网速不同需要几分钟到十几分钟不等。等待过程中建议保存屏幕上输出的信息尤其是最后提示的管理地址和账号密码。如果脚本提示需要指定目录我建议使用/opt/openclaw这样的标准路径避免个人目录权限问题。安装完成之后用docker ps可以看到OpenClaw相关的容器已经进入运行状态像这样docker ps --format table {{.Names}}\t{{.Status}}\t{{.Ports}}只要状态是Upport映射有输出说明服务已经拉起来了。4.2 初始化配置模型、账号、渠道一个都不能少服务启动之后进入OpenClaw的初始化配置阶段。这一步是最核心的配置错了后面所有功能都用不了。你可以通过浏览器访问脚本提示的管理页面也可以直接改配置文件。配置文件一般在安装目录下的config/里文件名叫config.yaml。核心配置项我用表格列一下配置项作用填什么model.provider模型服务商例如 openai、modelscopemodel.api_key模型调用密钥服务商后台申请的Keymodel.model_name默认模型比如 qwen-plus、gpt-4o-minimodel.base_url接口地址服务商提供的API端点channel.wechat.enabled是否启用微信渠道true / falsechannel.wechat.login_type登录方式qr扫码登录channel.telegram.tokenTelegram机器人TokenBotFather申请的Tokendata.dir数据存储目录默认 ./data 即可注意model.base_url这一项很多人会漏填。如果服务商的接口路径是标准的/v1结尾填完整地址就行。填完之后保存文件重启OpenClaw使配置生效docker compose down docker compose up -d重启后查看日志确认模型服务连接是否成功docker logs -f openclaw-main日志里出现类似“model service connected”的提示说明模型已经连通了。4.3 扫码绑定微信渠道模型通了之后接下来要把OpenClaw跟你的聊天软件绑定。以微信为例官方支持扫码登录的方式。你在终端里运行微信渠道的登录命令或者访问管理页面找到“渠道管理”入口系统会生成一张二维码图片使用微信扫码即可完成身份授权。扫码之前有两点要确认。第一手机和服务器需要能建立连接二维码是后端生成的扫码后手机跟服务端之间有一次握手第二确认扫码用的是你准备长期使用的账号因为OpenClaw会在服务器上保持该账号的登录态一旦中途换号前面的配置全部作废。扫码成功的标志是日志里出现“login success”之类的字样管理页面上的渠道状态也会从“待绑定”变成“已在线”。到此为止你给这个微信号发消息OpenClaw就能收到并进行处理了。4.4 配置开机自启防止断电后“失联”OpenClaw的容器默认不会开机自启如果机器重启了你得手动进终端敲docker compose up -d这对长期运行的场景很不友好。我建议把OpenClaw注册成systemd服务做到开机自动拉起。创建服务文件sudo tee /etc/systemd/system/openclaw.service EOF [Unit] DescriptionOpenClaw Service Requiresdocker.service Afterdocker.service [Service] WorkingDirectory/opt/openclaw ExecStart/usr/bin/docker compose up ExecStop/usr/bin/docker compose down Restartalways RestartSec10 [Install] WantedBymulti-user.target EOF然后启用并启动服务sudo systemctl enable openclaw sudo systemctl start openclaw这样即使服务器因为断电、升级重启OpenClaw也会在Docker启动后自动恢复全部容器基本不需要人工干预。这个操作用不到太多技巧但能省掉以后很多麻烦建议直接做。5. 常见问题与排查技巧实录5.1 Docker 权限与拉取镜像慢部署阶段最常见的报错有两类。一是执行docker命令提示“permission denied”这是用户没加入docker组导致的参照前面第3.1节执行usermod并重新登录即可。二是镜像拉取卡住不动这是网络问题优先检查/etc/docker/daemon.json里的registry mirror配置是否生效改完后执行sudo systemctl restart docker再重试。如果加速器配置了还是慢可以用docker pull单独拉取某一个镜像来定位看到进度条在走说明网络是通的耐心等就行。5.2 “could not safely verify the wsl2 environment”怎么破这条热搜问题我单独拿出来讲因为踩坑的人实在太多。出现这个报错的场景通常是在Windows的WSL2环境里直接执行OpenClaw的安装脚本。脚本会检查当前环境是否为WSL2如果它认为这个环境不安全或者无法验证就会直接拒绝继续安装。为什么脚本会拒绝WSL2因为WSL2的网络层是虚拟化的Docker daemon和容器的端口映射容易出问题而且OpenClaw的安装脚本需要写系统级配置WSL2的镜像文件挂载路径容易变得很复杂。最稳妥的解决办法不是去绕过校验而是换一条路要么用Windows原生Docker Desktop要么直接在虚拟机/物理机上装Ubuntu一劳永逸。如果你只是临时想在WSL里看看效果也可以尝试在安装脚本里加上--force之类的参数强制跳过环境校验但我不建议这么干后续跑起来遇到怪问题排查成本远高于直接换环境。5.3 微信渠道“能发不能收”的排查思路热词里有一条“openclaw能发消息微信但微信发消息没回复”这基本是每个玩IM机器人的人都会遇到的情况。先说结论这类问题九成出在“消息回调”环节。分两部分排查。第一步确认OpenClaw进程是否真的收到了微信消息看容器日志docker logs openclaw-main --tail 50如果日志里有收到消息的记录但没有对应回复说明模型处理或消息发送环节出了问题。如果日志里压根没有收到消息的记录那就是IM这边的消息事件没有推送过来常见原因是账号登录态失效退出重新扫码一般能解决。第二步排查模型调用是否正常。你可以在命令行手动发一条测试消息给OpenClaw看日志里模型API的响应时间。如果超时或者直接抛错多半是model.api_key配置错误或者模型服务商侧限流换个模型名或者检查Key重新填一遍即可。还要单独提醒一点微信对自动化消息有严格的风控机制短时间大量发送很容易触发限制。如果你要频繁测试请把消息频率控制住一次测一条等回复了再发下一条。5.4 模型对接配置错误的典型症状OpenClaw能启动但一问三不知或者回复速度极慢一般就是模型服务配置的问题。最常见的有三种一是base_url写错导致连接被拒。你配置服务商时一定要看它给的API文档里完整的endpoint路径有些是/api/v1有些是/v1漏一个路径层级都不行。二是模型名写错。同一个服务商平台里的模型标识跟对外文档里的模型名可能不完全一致建议到平台的模型列表页复制准确名称不要手敲。三是Key权限不足。有些Key只能在特定地域使用或者服务套餐不支持某个模型。这不是OpenClaw的问题但报错信息看起来像网络错误容易被误导。建议先在官方curl示例里手动测一下这个Key能不能正常出结果能出结果再填进OpenClaw。5.5 日志定位问题的方法最后分享一个通用的排障习惯先看日志再改配置。OpenClaw启动后容器日志是定位问题的第一手信息源。最常用的几条命令# 实时跟踪主服务日志 docker logs -f openclaw-main # 查看最近100条日志 docker logs --tail 100 openclaw-main # 查看某个渠道组件的日志 docker logs --tail 100 openclaw-channel-wechat日志里如果出现error、panic、failed这类关键词就顺着上下文往上翻一般都能定位到具体模块。另外OpenClaw的数据目录下会有运行日志文件格式通常是按日期切分的比如logs/2025-01-01.log直接用vim打开也能看。养成“先看日志、后改配置”的习惯你排查问题的速度会快很多。写在最后从跑通到好玩还有这几个方向OpenClaw装好、微信也能正常对话之后这个项目其实才刚刚开始。我自己的使用经验是先把基础问答跑顺然后再去解锁它的进阶玩法。比如给它配置多个模型做路由简单问题用快模型复杂任务自动切换强模型能明显降低使用成本。再比如给它加定时任务每天早上自动汇总天气、新闻和待办事项这才是AI助理真正省心的地方。一个我在实际操作中比较深的体会部署这类项目别追求一步到位先把最小可运行版本跑起来再去加功能。OpenClaw的配置项很多你要是上来就想把所有渠道、所有模型、所有自动化都配好很容易被一堆变量搞晕。先微信一个模型跑通再慢慢加。最后再分享一个小技巧每次修改配置之前先备份一下当前能用的配置版本。OpenClaw的配置文件是config.yaml直接复制一份改名config.yaml.bak就行。哪天改坏了一条命令就能回滚比你在文档里翻半天“默认值是什么”靠谱多了。希望这篇教程能帮你少走点弯路。