将 OpenClaw 接入 NAS(网络附属存储)是打造 24 小时在线、不间断私有 AI 自动化工作流的完美方案。但在群晖等 NAS 设备的 Docker 环境下部署时,往往会因为网络隔离、跨域限制或接口权限等问题导致初始化失败。

本文将从 0 到 1 带你完成 OpenClaw 在 NAS 上的完整容器部署,并重点复盘如何一键搞定外网访问及安全拦截等硬核大坑。


一、 环境准备:拉取容器镜像

在开始之前,确保你的 NAS 已安装好官方的 Container Manager(即 Docker 管理器)。

  1. 配置国内加速镜像(可选):若身处国内环境遇到镜像拉取卡死,进入 Container Manager -> 镜像仓库 -> 设置 -> 新增,将加速仓库 URL 填入:https://docker.1ms.run
  2. 下载镜像:在镜像仓库中搜索 openclaw,推荐选择并下载稳定版镜像:1panel/openclaw

二、 核心步骤:创建并配置 OpenClaw 容器

进入映像列表,右键点击下载好的镜像选择“运行”,按以下参数进行硬核调教:

  • 端口与空间映射:基础端口映射保持默认的 18789

  • 网络模式(关键)务必将默认的 bridge(网桥)模式修改为 host 模式。否则后续网关将无法正常穿透,导致你在外网或局域网其他设备上无法访问 NAS 内部的 OpenClaw 面板。

  • 高权限与自定义执行命令:勾选“使用高权限执行容器”,并在执行命令(Entrypoint/Command)后面追加以下初始化参数:

    1
    openclaw gateway --allow-unconfigured

配置完成后,直接点击确认,拉起容器服务。


三、 终端对接入局(TUI 配置)

  1. 开启 NAS SSH 权限:进入 NAS 的 控制面板 -> 终端机和SNMP,勾选“启用 SSH 功能”(默认端口 22)。
  2. 连接终端:使用免费开源的终端工具 WindTerm(或使用备用打包通道)连接至你的 NAS。
  3. 注入配置:登录成功后,输入 sudo -i 提升至 root 管理员权限,随后依次执行以下两条命令进入容器的向导模式:
1
2
3
4
5
# 1. 进入 openclaw 容器内部 (若自定义了容器名请自行替换)
sudo docker exec -it openclaw bash

# 2. 启动全平台通道对接向导 (如对接 Telegram、QQ 机器人等)
openclaw onboard

💡 提示:若在此步骤中选择对接 Telegram,请直接在客户端内呼叫官方机器人之父 @BotFather 创建 Bot 并获取专属配对凭证。


四、 完美破局:三大核心踩坑解决

当容器顺利运行后,在非 NAS 本机浏览器(如你的主力 PC)访问 http://NAS_IP:18789 时,通常会连续遭遇以下两个系统级报错。直接执行以下命令即可完美修复:

大坑 1:遭遇跨域拦截

  • 报错信息origin not allowed (open the ControlUI from the gateway host...)

  • 解决方案:此问题由跨域权限引起。在终端执行以下命令,将 Gateway 模型从本地绑定(bind mode)强制转换为局域网(LAN)模式,并注入允许的源地址:

    1
    docker exec openclaw node openclaw.mjs config set gateway.controlUi.allowedOrigins '["http://你的NAS_IP:18789","http://localhost:18789"]'

大坑 2:遭遇设备安全认证拦截

  • 报错信息control ui requires device identity (use HTTPS or localhost secure context)

  • 解决方案:重启容器后若触发该报错,说明系统在非 HTTPS 安全环境下限制了设备认证。在终端输入以下命令直接物理绕过安全限制:

    1
    docker exec openclaw node openclaw.mjs config set gateway.controlUi.dangerouslyDisableDeviceAuth true

再次重启容器,重新刷新浏览器,你就能完美看到并掌控专属的 OpenClaw 私有控制面板。


总结

通过 Docker 容器化部署,OpenClaw 可以常驻于 NAS 后端,成为你局域网或外网环境下的“AI 流量调度中枢”。虽然在部署过程中 host 网络架构与跨域安全机制(Allowed Origins)容易让新手产生劝退感,但只要按照上述命令修正容器底层的 .mjs 配置文件,就能彻底解放 NAS 的算力,让 AI 机器人真正开始为你打工。