OpenClaw NAS 部署教程:让你避免踩坑 🦦

耗时:约 15 分钟 | 难度:⭐⭐(需要有一定的 Docker 部署能力)


「在 NAS 上跑 OpenClaw,只能本机访问,局域网其他设备打不开?」「想在外网随时调用自己的 AI 助手,却不知道该怎么配置?」

本文特点:基本全前端操作,Docker 图形界面点点就能部署,稍微有点技术基础就能搞定。

🎯 本文最大的价值:OpenClaw 出于安全考虑默认只支持 localhost 访问,这个部署方案彻底解决了非 localhost 访问的问题。这是本人在实际部署 NAS 环境时踩过一系列坑后整理出来的经验,参考本文可以绕过这些坑,少走弯路。


📋 部署前准备

环境要求

项目 要求
NAS 系统 群晖 DSM 7.x / 威联通 QTS 4.4+ / fnOS
Docker 已安装并启用(套件中心安装)
网络 NAS 可访问互联网 & 科学上网
SSH 访问 可选,主要用于权限问题处理

💡 如果使用代理上网,NAS 上的代理软件需要开启「允许局域网连接」


📦 第一步:拉取镜像

ps: 本文章主要是讲 docker 部署步骤,镜像获取简单带过

方式一:Docker 图形界面

在 NAS 上打开 Docker 套件注册表,搜索 openclaw/openclaw,双击下载 latest 版本。

💡 fnOS 可直接通过图形界面拉取;群晖/威联通建议用命令行,图形界面有时会卡住。

方式二:命令行(更稳定)

SSH 登录 NAS 后执行:

# 海外网络直连
sudo docker pull ghcr.io/openclaw/openclaw:latest

# 国内需要代理(替换为你的代理地址)
sudo HTTP_PROXY=http://192.168.1.1:7890 \
     HTTPS_PROXY=http://192.168.1.1:7890 \
     docker pull ghcr.io/openclaw/openclaw:latest

💡 也可以先在网络好的电脑上拉取镜像,导出后上传到 NAS 加载,省时省力。


🔌 第二步:配置与运行(关键!)

⚠️ 这是最重要的一步,端口、存储、启动命令都在这里配置。

2.1 打开容器创建向导

Docker 套件容器创建

(截图见原文)

2.2 按顺序完成以下配置

详细步骤见下图。如果你已经有 Docker 部署基础,可直接看后面的「配置项说明」复制粘贴。

网络端口映射:
在这里插入图片描述
存储路径映射:
在这里插入图片描述

环境变量:
在这里插入图片描述

启动命令:

openclaw 默认只允许 localhost 访问(安全考虑),Docker 部署时需要从局域网其他设备访问,所以必须添加 --bind lan 参数:
在这里插入图片描述

⚠️ 这一步不能漏!漏了局域网内其他设备都访问不了。

配置项说明

配置项
端口映射 18789(左边填你想要的端口,右边填 18789
存储映射 /volume1/docker/openclaw/data/home/node/.openclaw
/volume1/docker/openclaw/workspace/home/node/.openclaw/workspace
环境变量 TZ = Asia/Shanghai
OPENCLAW_AUTH_TOKEN = ${user_define}(可不填,自动生成)
执行命令 node openclaw.mjs gateway --bind lan --allow-unconfigured(可直接复制粘贴到命令行)

🚀 第三步:启动容器

点击「完成」或「应用」,等待容器启动。

⚠️ 容器启动成功后,openclaw 会生成配置文件。此时还需要完成第四步 Gateway 配置,才能用浏览器打开控制台。


🔐 第四步:配置 Gateway 授权

容器运行后,openclaw 会自动生成 openclaw.json 配置文件。需要编辑它,添加 Gateway 配置项,让局域网内其他设备可以访问控制台。

4.1 找到配置文件

本示例路径:/volume1/docker/openclaw/data/openclaw.json

💡 实际路径取决于你第二步映射的存储路径。

4.2 添加 Gateway 配置

⚠️ 这里是合并配置,不是覆盖文件! 打开文件后,在适当位置插入以下内容,原有内容全部保留。

gateway.controlUi 中需要合并以下配置项:

{
  "gateway": {
    "mode": "local",
    "bind": "tailnet",
    "controlUi": {
      "dangerouslyAllowHostHeaderOriginFallback": true,
      "allowInsecureAuth": true,
      "dangerouslyDisableDeviceAuth": true
    },
    "auth": {
      "mode": "token",
      "token": "openclaw自动生成的token"
    }
  }
}

4.3 重启容器

⚠️ 修改配置后必须重启容器才能生效。


🔧 第五步:权限处理(强烈推荐执行)

⚠️ Docker 部署下,openclaw 执行任务时需要操作文件读写 , docker部署会经常遇到权限不够的问题,导致容器启动失败或功能异常。建议在运行容器前就执行以下命令,把文件夹权限移交给 openclaw 的 node 用户

# SSH 登录 NAS 后执行 (1000 为 openclaw 在 docker 中运行的 node 用户)
sudo chown -R 1000:1000 /volume1/docker/openclaw
sudo chmod -R 755 /volume1/docker/openclaw

如果容器已经起不来,停掉容器 → 执行上面命令 → 重启容器。

🐳 需要进入容器调试?

docker exec -it -u root openclaw bash

✅ 第六步:验证与访问

查看容器状态

# 查看是否在运行
docker ps | grep openclaw

# 查看日志(排查问题用)
docker logs -f openclaw

打开控制台

浏览器访问:http://你的NAS地址:18789(实际应为你自定义的端口号)

💡 Token 从哪找?打开 openclaw.json 文件,找到 auth.token 字段,复制后面的值。

(截图见原文)


⚡ 快速检查清单

  • ✅ 镜像拉取成功

  • ✅ 端口 18789 已映射

  • ✅ 存储路径已挂载(两个都要)

  • ✅ 执行命令已添加 --bind lan

  • ✅ Gateway controlUi 配置已合并(不是覆盖)

  • ✅ 文件夹权限已处理

  • ✅ 容器已重启

  • ✅ 控制台可正常打开


💡 常见问题

Q:做了以上配置,外网还是访问不了?

⚠️ 本文配置解决的是局域网内非本机访问(同 WiFi 下其他设备访问 NAS)。人在外网想访问家里 NAS 上的 openclaw,还需要额外配置。

Q:容器起不来?

  • 在docker容器界面查看日志,查看具体报错信息

  • 常见原因:路径写错、端口被占用、权限不够

Q:控制台打不开?

  • 检查 Token 是否正确(从 auth.token 字段获取)

  • 重启容器:container manager 中重启 or ssh 到 NAS 执行 docker restart openclaw

Q:OPENCLAW_AUTH_TOKEN 环境变量要不要填?

  • 可以不填,仅用于控制台访问时使用。

有问题欢迎留言 👇

觉得有用?转发给需要的朋友 🙌

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐