💡 大家好,我是可夫小子,关注AI编程、AI自动化和自媒体。

背景
我去年在自己Macbook上就已经安装了Openclaw了,当时基本就是一行命令,比较顺利。经过这两个月,Openclaw版本经历了很多更新,当时的安装教程有些过时了。最近,我需要在一台群晖的Nas部署Openclaw,硬是花了两天时间才完成。我把整个详细的部署过程,一些踩坑经历用图文记录下来,就有这篇包含30多张截图的图文。
方案说明
在Nas安装Openclaw,主要有三种方案来实现
-
直接通过官方脚本,安装到Nas物理机上
-
优点:方便,一键安装
-
缺点:数据风险比较大,可能会导致数据丢失
-
通过Virtual Machine Manager套件,安装Ubuntu桌面系统
-
优点:数据隔离,同时也拥有桌面系统
-
缺点:部署复杂一点,比较吃Nas性能
-
通过Container Manager安装Docker镜像
-
优点:方便,一键部署,安全;与物理机隔离;低性能机器
-
缺点:没有桌面系统,openclaw的能力没法发挥出来
现在市面上的Nas装OpenClaw的教程大多是第2种。但这样比较吃Nas性能,我手头的Nas性能一般。后面我还是选择通过Docker来安装。大概的框架如下
-
Nas
-
系统版本:Linux candynas 4.4.302+
-
群晖Nas版本:DSM 7.2.1
-
IP:192.168.1.168
-
作用:Docker上运行OpenClaw服务,通过Docker的终端进行OpenClaw的模型、Channel和Gateway配置
-
PC
-
系统版本:Windos系统/Mac系统,
-
IP:192.168.1.7
-
作用:通过浏览器,访问http://192.168.1.168:18789访问OpenClaw服务

Docker镜像下载
在Nas的进行网页管理界面,套件中心→Container Manager

因为各种原因,官网的镜像很难下载下来,先添加一个国内镜像加速器。

仓库URL填:docker.1ms.run
接下来就是可以在镜像仓库里面搜索openclaw,然后下载镜像,我使用的是1panel的openclaw

总共有接近4G,大约一个小时才下载完
运行Docker
进入Nas终端,执行以下命令启动docker
bash
sudo docker run -d \
--name openclaw \
--restart always \
--net=host \
-p 18789:18789 \
-v /volume1/docker/openclaw:/root/.openclaw \
--user root \
docker.1ms.run/1panel/openclaw:latest \
openclaw gateway --allow-unconfigured
其实,在Nas网页控制台也能启动docker,但没有参数配置的地方,后来我还是通过终端命令行来启动的。
启动完成之后,输入docker ps确认目标docker是否运行正常。如下的是正常的信息。

至此,Openclaw也已经在Nas的Docker运行起来了,接下来还我们进入docker,进行Opencalw配置。
在Nasx终端执行如下命令:
bash
sudo docker exec -it openclaw bash
然后再输入openclaw status命令查询一下openclaw的状态,如果能正常打印出来信息,就说明openclaw已经运行起来

接下来我们来进行一些基本的配置
配置大模型
因为在国内使用,就不折腾网络环境了,我就选择minimax,说实话最新的MiniMax-M2.5也一般,我这里只做演示,你们自己使用自己熟悉的大模型即可。
- 首先,进入minimax官网,创建一个API KEY。
- 仍然进入Docker里面的shell环境,执行
openclaw config,然后选择local→model→minimax
- 重启,然后再进入docker里面的shell,执行命令
openclaw tui进入openclaw的终端对话框,然后输入任意文本,看大模型是否有回复。
如上,有正常回复,到此在docker里面大模型已经配置好。接下来我们配置一个Channel,即聊天工具。因为在国内考虑网络环境,选择飞书。
配置飞书
飞书端配置
进入open.feishu.cn/app,创建企业自建应...

添加应用能力→机器人

打开权限
权限这块的坑最多,网上教程大都过时,一些权限都已经改名了,找不到。就我实践来说,主要给「通讯录」和「消息与群组」两大块都授权
-
通讯录
-
消息与群组

配置机器人
为机器人配置一个名字

接下来应该要配置事件与回调,但这个先由openclaw先发起来,否则没办法设置。我先发布版本,然后记录下app id和app secret。然后我们又转到Docker的环境里面
openclaw端配置
执行命令openclaw config,Local→Chaneel→feishu,然后按照提示把app id和app secret填到里。
或者直接通过TUI终端对话,把app id和app secret输入,让他配置。
这边配置完成之后,我们就来配置飞书的长连接。
配置飞书长连接

第3步添加事件有:

配对
这样两边都配置好,就差最后一步配对。前行在飞书里面发走消息,会提示要求配对,并提供配对命令和配对码

复制这个命令,进入Docker的终端,执行:openclaw pairing approve feishu 8K62K524

看到Approved,即完成飞书配置。
踩坑:飞书加入群聊
现在我们把飞书的私聊已经完成了配置,那么飞书可以加入群聊,和小伙伴一起玩耍呢?我找了一圈,最后在官方文档上找到答案了

好吧, 也算有个结论了,我们这种非认证的个人用户,就放弃好了。
配置webui
完成Openclaw的基本配置,接下来就是配置一个webui的gateway,也就是通过网页访问的方式。因为是docker,不是本机,这里面的网络配置坑最多。以下是我完成的过程
第一步,确认docker的端口映射
正常情况下,如果你使用我前面的docker run参数,是不会有问题的。我们再确认一下,在Nas的终端执行docker ps

如果看到PORTS里面,已经监听了0.0.0.0:18789,说明Docker的出口端口是正确的。
第二步,设置Openclaw的Bind mode
通过前面的命令,进入docker终端,执行openclaw config看一下

看到Dashboard这是一个回环地址:127.0.0.1,没办法在局域网其他机器上访问,这个地址要改一下,通过修改bind mode
openclaw config,改bind mode为lan模式,如下:

再查看一下openclaw status信息:

现在显示宿主机地址了。
获取token
现在访问地址已经配置好,还需要一个token才能访问,通过命令cat ~/.openclaw/openclaw.json读取token,记录下来备用
bash
db9aa6be16a4bcle8d3202dc40c9157132ce43d81a39e03f
测试及填坑
在局域网其他电脑浏览器:http://192.168.1.168.18789,可以看已经看到久违的页面了,但仍然还不是正常对话,第一步先填入token
概览→网关访问

发布并没有如期完成配置,接下来还要解决三个问题:
- 跨域的问题
提示错误信息:
bash
origin not allowed (open the ControlUIfrom the gateway host or allow it in gateway.controlUi.allowedOrigins)
openclaw
解决方案:
需要在openclaw的配置文件中加入192.168.1.168这个地址。
bash
{
"gateway": {
"port":18789,
"mode":"local",
"bind":"0.0.0.0",
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"http://127.0.0.1:18789",
"http://192.168.1.168:18789"// 新增这一行,替换为你的NAS实际IP
]
}
}
}
- https的问题
提示的信息信息:
bash
control ui requires device identity (use HTTPS or localhost secure context)
此页面为 HTTP,因此浏览器阻止设备标识。请使用 HTTPS (TailscaleServe) 或在网关主机上打开 http://127.0.0.1:18789。
如果您必须保持 HTTP,请设置 gateway.controlUi.allowInsecureAuth:true (仅限令牌)。
Docs:TailscaleServe · Docs:InsecureHTTP

解决方案
bash
找到映射到容器内的 openclaw.json 配置文件(通常在你服务器的 ~/.openclaw/openclaw.json)。
在 JSON 文件中修改 gateway.controlUi 配置项,增加以下内容:
JSON
{
"gateway": {
"controlUi": {
"dangerouslyDisableDeviceAuth":true
}
}
}
保存文件后,重启 OpenClaw 的 Docker 容器。
再次通过 http://局域网IP:18789 访问,填入 Token 即可直接进入,不会再要求设备身份配对。
(补充:网上的旧教程可能会让你设置 allowInsecureAuth:true,但这个参数在 2026.2.21 及之后的版本中已经失效,现在必须用上述方法才能绕过。)
这个问题最坑,全网就gemini回答正确,答案更新更及时。
- 重新获得访问令牌
错误信息:
bash
unauthorized: too many failed authentication attempts (retry later)
身份验证失败。请使用 openclaw dashboard --no-open 重新复制令牌化 URL,或更新令牌,然后点击连接。

解决方案:
按照提示,在nask 执行一下命令,重新获得授权。
docker exec -it openclaw openclaw dashboard --no-open
然后把命令的返回URL,复制出来,改成局域网地址访问即可

到此,gateway webui配置完成,可以在局域网任意一台PC上访问openclaw服务。
备份与恢复
现在好不容易配置好了docker,但openclaw经常会把自己搞挂,所以我们要及时备份。主要有两种方案,我现在使用的是方案一。
方案一:使用群晖图形界面备份(最推荐,简单直观)
在群晖DSM 7.2.1中,Docker应用已经升级并更名为 **Container Manager。**它自带了非常方便的导入/导出功能,相当于给容器打快照。
-
登录您的群晖NAS(192.168.1.168)。
-
打开 Container Manager 套件。
-
在左侧菜单点击 **容器 (Container),**找到正在运行的
OpenClaw容器。 -
先将容器停止 (Stop)(为了保证数据一致性)。
-
选中该容器,点击上方的 操作 (Action) -> 导出 (Export)。
-
在弹出的窗口中,您可以选择:
-
仅导出容器设置
(仅备份运行参数,体积小)。
-
导出容器设置和内容
(连同容器内部状态一起打包为
.txz压缩包,这就是您要的"快照")。
- 选择保存路径到您的NAS共享文件夹中即可。
方案二:使用Docker命令行打快照(适合极客或自动化)
如果您更习惯用SSH终端(Linux命令行)操作,可以使用 commit 和 save 命令来把当前容器的状态打包成一个镜像快照。
1. 将当前容器状态保存为新镜像 (Commit):
bash
# 假设您的容器名叫 openclaw
docker commit openclaw openclaw_snapshot:v1
这相当于给当前容器拍了一张"快照",生成了一个名为 openclaw_snapshot、标签为 v1 的本地镜像。
2. 将新镜像导出为压缩包文件 (Save):
bash
# 将镜像打包成 tar 文件存放在指定目录(请将路径替换为您的NAS实际路径)
docker save -o /volume1/docker/backup/openclaw_snapshot_v1.taropenclaw_snapshot:v1
**如何恢复 (Load):**如果以后需要恢复这个快照,只需运行:
bash
docker load -i /volume1/docker/backup/openclaw_snapshot_v1.tar
# 然后基于恢复的快照镜像重新运行容器
总结
整个过程完成是我自己的真实记录,没有任何AI生成的内容。我认为写的还是比较详细,收藏一下吧,说不定哪天也要用到。
🧨 彩蛋
我的《AI编程与自动化 》2026训练营正式开营,以AI编程为驱动,让每个个体都拥有自己的小产品、小生意。训练营已积累了我过去三年200篇+的教程和案例。都是我自己实操总结,都是使用心得,并非复制网上过时的信息。现在以每周至少三篇的更新频率,让你获得最新、最接地气的AI资讯和教程。
知识库模块
