群晖NAS安装OpenClaw 容器 | 亲测详细版无障碍部署(一)

⭐关注“老IT有话说”,不错过每一篇推送,期待您的点赞、关注、转发!
大家好!我是老IT。
如果你和我一样有一台群晖NAS,想在NAS上运行OpenClaw 容器服务,希望一次部署成功,就按照下面步骤一步步操作,亲测版无障碍。
设备型号 DS218+
DSM版本 DSM 7.2.2-72806 Update 5
CPU INTEL Celeron J3355
内存 10GB
硬盘 2*10TB
OpenClaw版本 v2026.3.13
第1步:准备工作
1.1 安装Container Manager
群晖NAS套件中心 → 安装 Container Manager组件。由于此处镜像库无法连接,文件权限及端口监听等一系列问题,因此只能按照后续步骤手动安装,无法通过控制台页面部署。

1.2 开启NAS的SSH
群晖NAS控制面板 → 终端机和SNMP → 终端机→ 勾选“启动SSH功能”,端口默认22,点“应用”。

1.3 用SSH连接到NAS
Windows用户打开PowerShell,输入:
powershellssh 你的用户名@你的NASIP例如ssh charles@192.168.0.241,输入密码登录。
1.4 创建配置目录
bashsudo mkdir -p /volume1/docker/openclaw
第2步:拉取OpenClaw镜像
bashsudo docker pull ghcr.io/openclaw/openclaw:latest
第3步:首次运行生成配置文件
运行一个临时容器,让它生成配置文件:
bashsudo docker run -it --name openclaw-temp ghcr.io/openclaw/openclaw:latest node openclaw.mjs gateway run --allow-unconfigured --dev
看到输出中有Dev config ready: ~/.openclaw/openclaw.json后,等待几秒,按Ctrl+C停止容器。
第4步:将配置文件复制到NAS目录
bashsudo docker cp openclaw-temp:/home/node/.openclaw/openclaw.json /volume1/docker/openclaw/删除临时容器(不再需要):
bashsudo docker rm openclaw-temp
第5步:修改配置文件(让外部能访问)
编辑配置文件:
bashsudo vi /volume1/docker/openclaw/openclaw.json按 i 进入编辑模式,修改为如下内容(注意逗号):
json{ "gateway": { "auth": { "token": "这里是一串自动生成的字符,千万别改" }, "controlUi": { "allowedOrigins": [ "http://你的NASIP:18789" ] } }}
将 你的NASIP换成你NAS的真实IP(例如192.168.0.241)。
关键:在 auth 的}后面要加一个逗号,,然后再写"controlUi": ...。
按Esc,输入:wq保存退出。
第6步:修复权限(最重要的一步!)
执行以下命令,确保容器内用户能读取配置:
bash# 父目录权限改为755(让其他用户可以进入)sudo chmod 755 /volume1/docker# 配置目录所有者设为 UID 1000(容器内node用户)sudo chown -R 1000:1000 /volume1/docker/openclawsudo chmod 755 /volume1/docker/openclawsudo chmod 644 /volume1/docker/openclaw/openclaw.json
第7步:运行正式容器
bash sudo docker run -d </span> --name openclaw </span> --net=host </span> -v /volume1/docker/openclaw:/home/node/.openclaw </span> --restart unless-stopped </span> ghcr.io/openclaw/openclaw:latest </span> node openclaw.mjs gateway run --allow-unconfigured --bind lan
验证容器是否运行
bash
sudo docker ps | grep openclaw状态应为Up。
第8步:验证服务
8.1 在NAS本地测试
bashcurl -v http://127.0.0.1:18789/healthz应返回HTTP/1.1 200 OK和JSON {"ok":true,"status":"live"}。

8.2 局域网测试
bashcurl -v http://192.168.0.241:18789/healthz同样应返回200 OK。
第9步:永久本地访问配置(摆脱SSH隧道)
通过以下配置,你可以在PC上永久使用http://127.0.0.1:18789访问OpenClaw,无需每次开启SSH隧道。
9.1 以管理员身份打开PowerShell
右键点击开始菜单 → 选择 “Windows PowerShell (管理员)”。
9.2 添加永久端口转发规则
powershellnetsh interface portproxy add v4tov4 listenport=18789 listenaddress=0.0.0.0 connectport=18789 connectaddress=192.168.0.2419.3 验证规则是否添加成功
powershellnetsh interface portproxy show all应看到类似:
# text
侦听 ipv4: 连接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
0.0.0.0 18789 192.168.0.241 187899.4 测试访问
打开浏览器,输入(替换token):
texthttp://127.0.0.1:18789/?token=你的token如果OpenClaw仪表盘正常加载,大功告成!
9.5 以后每次使用
直接访问http://127.0.0.1:18789/?token=你的token即可。
转发规则永久有效,重启电脑也不丢失。

❓ 常见问题
Q1: 容器启动后不断重启?
A: 执行sudo docker logs openclaw查看错误。最常见原因是:
配置文件JSON格式错误(检查逗号、括号)。
权限问题(重复第四步)。
端口被占用(可尝试更换端口,但需同步修改所有配置)。
Q2: 浏览器访问 http://127.0.0.1:18789 显示“无法访问此网站”?
A: 检查:
转发规则是否添加成功:netsh interface portproxy show all。
Windows防火墙是否阻止了18789端口(临时关闭防火墙测试)。
NAS是否开机且IP未变。
Q3: 连接仪表盘时提示 unauthorized: too many failed attempts?
A: 等待几分钟让锁定自动解除,或重启容器:
bashsudo docker restart openclawQ4: NAS重启后需要重新配置吗?
A: 不需要。容器设置了--restart unless-stopped,会自动启动。端口转发规则在PC上永久生效,只要NAS IP不变,一切照常。
Q5: 如何获取最新的token?
A: 任何时候都可以通过查看配置文件获得:
bashsudo cat /volume1/docker/openclaw/openclaw.json | grep token🎉 完成
打开浏览器,输入http://127.0.0.1:18789/,现在你拥有了一个安全、可访问的OpenClaw服务。后续第二篇探索添加AI模型、配置飞书等高级功能。
如果后续需要完全删除容器的命令脚本,请关注老IT公众号,私信”删除容器"自动回复。
