NAS虚拟机部署OpenClaw,打造7×24小时常驻AI Agent
2026/9/14 6:27:21 网站建设 项目流程

把 OpenClaw 这类开源 AI Agent 部署到个人电脑上并不难,难的是让它像 NAS 里其他服务一样 7×24 小时稳定运行。很多人本地跑通之后,换到 NAS 虚拟机上就遇到一连串问题:终端一关服务就挂、API Key 明明没错却一直报 unknown model、NAS 重启后 Agent 不会自动恢复、配置目录里多出 approval 文件不知道能不能删。

这篇文章会完整梳理一条“ NAS + 虚拟机 + OpenClaw ”的落地路径,从虚拟化选型、Linux 环境初始化、OpenClaw 安装、DeepSeek 等模型 API 配置,到 systemd 后台保活与常见报错排查,尽量把每一步的原理和坑点都讲清楚。不管你用的是群晖、飞牛这类带虚拟机模块的 NAS,还是 PVE 全家桶,按照文中的配置思路都能迁移过去。

本文更适合有一定 Linux 基础、想在家用或小型办公室环境里运行一个常驻 AI 助手的开发者。如果你之前只用 Docker 跑过服务,看到 systemd 相关内容也不需要紧张,我会把每个配置项的含义拆开说明。

1. OpenClaw 是什么,为什么需要部署在 NAS 虚拟机上

1.1 OpenClaw 的核心定位

OpenClaw 是一款开源的个人 AI Agent(智能体)框架。直接理解的话,它不是一个“聊天网页”,而是一个长期运行的服务进程。你可以给它配置一个大模型 API,比如 DeepSeek API,然后 Agent 就能接收任务、拆分步骤、调用工具、访问技能文件,甚至自动执行一些已经获得授权的命令。

很多首次接触的人会把“ Agent 框架”和“大模型 API demo”混在一起。两者的核心区别在于:

  • 大模型 API demo:每次调用都是“问一句,答一句”,没有状态,没有工具调用。
  • Agent 服务:有记忆、有工具、有审批机制,能完成多步骤任务,通常需要有一个守护进程长期跑着。

OpenClaw 这类框架还有一个安全设计,它对那些需要真实执行的命令采取“审批”机制。当 Agent 计划执行某个敏感命令时,不会直接运行,而是先记录或提示用户确认。不少人在部署时会看到配置目录下出现exec-approvals.json,这个文件保存的就是历史上被批准过的命令记录。它很重要,不是随便一个缓存文件。

1.2 为什么选择 NAS 虚拟机的组合

NAS 最大的优势是常电、低功耗、存储集中。把 OpenClaw 放进 NAS 虚拟机,等于给 Agent 安排了一个不关机的小型服务器,而且它产生的日志、配置、审批记录都可以落在本地存储里,不会被云厂商收走。

在这个方案里,“虚拟机”不是可有可无的中间层。相比直接把服务塞进 NAS 系统,虚拟机有几个实际价值:

  • 隔离环境:OpenClaw 依赖的运行时、配置文件、权限体系都在一个独立 Linux 系统里,不会污染 NAS 主系统。
  • 快照回滚:虚拟机可以在升级前打快照,出问题时一分钟内回滚。
  • 权限可控:你可以在虚拟机里创建专用服务账号,而不是以 NAS 管理员身份运行 Agent。
  • 便于迁移:把整个虚拟机导出或备份,就能在另一台机器上恢复同一个环境。

当然,虚拟化也有额外开销。如果 NAS 本身只有 2GB 内存,跑虚拟机可能不如直接跑容器方案舒服。但若你已经有 NAS 虚拟机环境,或者想把 Agent 与媒体服务、监控服务隔离开,虚拟机仍然是比较稳妥的方案。

1.3 这个方案适合谁

这套部署方式比较适合三类用户:

  • 家里已经有群晖、飞牛、PVE 环境的 homelab 玩家。
  • 想长期运行一个智能助手,而不是每次临时启停脚本的开发者。
  • 对数据隐私比较敏感,希望 Agent 的配置、日志、历史记录都留在自己设备上的人。

如果你只是想在电脑上随便体验一次 OpenClaw,直接用本地虚拟机验证即可,不一定非得上 NAS。但如果你希望它像服务一样每天稳定在线,NAS 虚拟机的思路值得看完。

2. 部署前的方案选型与硬件准备

2.1 先分清本地 VMware 与 NAS 虚拟机

开始之前,先做一次容易混淆的概念清扫。

很多人最先接触的虚拟化工具是 VMware Workstation,它属于运行在 Windows/Linux 桌面系统上的虚拟化软件,适合用来临时测试 Linux 镜像或调试 OpenClaw 配置。而 NAS 上常见的虚拟化平台则是另一类,比如群晖的 Virtual Machine Manager、飞牛的自带虚拟机模块、PVE 或 ESXi 这类底层虚拟化系统。

实际部署中比较顺畅的流程是:

  1. 在本地 VMware Workstation 或 VirtualBox 里安装 Ubuntu,快速验证 OpenClaw 安装和 API 配置。
  2. 跑通之后,在 NAS 虚拟机上按同一套配置正式部署。

这样做的好处是把“配置问题”和“环境问题”分开。如果本地能跑,说明 OpenClaw 配置基本没问题;如果上 NAS 后异常,重点排查虚拟机资源、网络、开机启动、权限这几个差异点。

NAS 虚拟化平台本身是否支持,主要看 CPU 是否开启硬件虚拟化,也就是 Intel VT-x 或 AMD-V。常见 NAS 系统中,群晖需要安装 Virtual Machine Manager 套件,飞牛和 PVE 通常在创建虚拟机界面就能直接选择 Linux 系统。不同品牌界面差异很大,但核心配置项是一致的。

2.2 虚拟机资源建议

OpenClaw 本身不是特别吃资源,真正需要评估的是它还要承担哪些工作。如果只是通过 API 调用模型、执行少量定时任务,低配虚拟机就够;但如果同时运行多个智能体会话、接入消息平台、跑本地技能脚本,内存就要留足。

配置项最低要求推荐配置
vCPU2 核4 核
内存4 GB8 GB
系统盘32 GB64 GB
网络桥接模式固定内网 IP
宿主机虚拟化Intel VT-x / AMD-V开启嵌套虚拟化备用

内存是我最想强调的一点。虚拟机会占用 NAS 物理内存,而且 Linux 系统的 page cache 会随着运行时间增长。如果 NAS 本身也要跑 Docker、相册索引、视频转码,建议给虚拟机预留足够内存,避免多个服务互相挤占导致 OOM,也就是内存溢出。

2.3 磁盘与镜像准备

OpenClaw 的安装文件不会特别大,但由于会持续写日志、缓存、审批记录,磁盘不建议太小。你可以用精简配置创建虚拟磁盘,但要注意,精简配置只是“按需占用物理空间”,并不代表磁盘空间永远够用。

建议提前准备好 Ubuntu Server LTS 镜像。这类镜像比较稳,也是很多服务端软件的默认适配系统。不要选带桌面环境的 Ubuntu Desktop,会白白占用内存和 CPU。服务器部署尽量用 Server 版本,毕竟我们管理它主要靠 SSH。

3. 在 NAS 上创建 Linux 虚拟机

3.1 创建虚拟机时的关键配置

无论你使用哪个 NAS 品牌,创建虚拟机时下面几步是通用的:

  1. 上传 Ubuntu Server ISO 镜像到 NAS 存储。
  2. 新建虚拟机,操作系统类型选 Linux,版本选 Ubuntu 64-bit。
  3. 分配 CPU 和内存,参照上一节的推荐值。
  4. 创建虚拟磁盘,建议放在 SSD 存储池或读写性能较好的卷上。
  5. 网络选择桥接模式,让虚拟机获得与 NAS 同一网段的独立 IP。

安装系统时,Ubuntu 安装器会询问是否安装 OpenSSH server,这一步务必勾选。OpenClaw 是命令行服务,绝大多数操作都通过 SSH 完成,没有 SSH 服务会让后续部署非常别扭。

安装过程中还会有引导和分区的选项,新手直接使用默认的“使用整个磁盘”即可,不需要手动分区。

3.2 配置静态 IP 与远程访问

虚拟机启动后,第一件事是拿到它的 IP 地址。桥接模式下,登录虚拟机控制台输入下面命令查看地址:

ip addr

动态 IP 在长时间运行的场景中不太可靠。如果 NAS 重启或路由器重新分配地址,虚拟机 IP 变了,OpenClaw 的 Web 管理面板和外部回调地址都会失效。这里建议直接在虚拟机里配置静态 IP。

Ubuntu Server 的网络配置通常使用 netplan。先查看当前网卡名称,然后编辑配置文件:

sudo nano /etc/netplan/99-openclaw.yaml

示例内容如下,注意替换为自己的网卡名、IP 和网关:

network: version: 2 ethernets: eth0: dhcp4: false addresses: - 192.168.1.88/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 192.168.1.1 - 223.5.5.5

其中192.168.1.88是给虚拟机分配的固定 IP,192.168.1.1是路由器网关,DNS 地址要换成你内网实际可用的 DNS。保存后执行:

sudo netplan apply

配置成功后,重新ip addr查看确认地址。之后在电脑上用 SSH 登录:

ssh 用户名@192.168.1.88

后续所有操作都可以在 SSH 会话中完成。

3.3 系统初始化操作

登录虚拟机后,先做一轮基础初始化,保证后续安装 OpenClaw 时系统是干净的。

sudo apt update sudo apt upgrade -y sudo apt install -y curl git htop tar ca-certificates

如果虚拟机内存只有 4GB,建议补充一个 swap 文件,避免内存不足时进程被系统杀掉:

sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

注意,如果虚拟磁盘使用 Btrfs 等不支持 fallocate 的文件系统,可以用dd方式创建 swap 文件。这里以默认 ext4 为例,命令在大多数 Ubuntu 安装场景下可以直接使用。

4. 安装 OpenClaw

4.1 安装方式的选择

OpenClaw 的迭代速度比较快,官方可能同时提供多种安装方式,比如 Release 二进制、Docker 镜像、官方安装脚本。它们在原理上都是把一个可执行服务放到系统里,然后通过配置目录读取 API 设置。

本文以 Release 二进制解压到/opt/openclaw为例,因为这种方式最适合和 systemd 配合,也更方便控制服务账号和权限。如果你选择 Docker 方式,思路不完全一样。

先说一个安全建议:官方文档如果提供“一键脚本”,不要直接curl | bash完事。比较稳妥的做法是先把脚本下载到本地,打开看一眼它做了什么,确认没有把 API Key 或系统信息发送到未知服务器再执行。

另外,市面上有一些第三方“一键部署工具”会要求你提供 API Key,甚至帮你远程配置。使用前请务必核实对方是否可信。自己用开源项目部署,本来就是为了掌握数据和密钥,不要把最核心的 Key 交给来路不明的工具。

4.2 下载并解压 Release

先查看虚拟机的 CPU 架构,以选择正确的安装包:

uname -m

如果输出x86_64,选择 amd64 版本;如果输出aarch64,选择 arm64 版本。

下面命令中的<owner><tag><archive>是占位符,需要到官方 GitHub Releases 页面替换为实际值:

# 进入临时目录 cd /tmp # 下载 release 压缩包,地址以官方发布页为准 curl -fL -o openclaw.tar.gz \ "https://github.com/<owner>/openclaw/releases/download/<tag>/openclaw-linux-amd64.tar.gz" # 解压到 /opt/openclaw sudo mkdir -p /opt/openclaw sudo tar -xzf openclaw.tar.gz -C /opt/openclaw # 查看解压内容 ls -l /opt/openclaw

解压之后,通常会看到一个可执行文件,也可能附带默认配置样例。先手动执行一下,确认它能正常运行。下面命令中openclaw是可执行文件名,按实际解压结果替换:

/opt/openclaw/openclaw --version /opt/openclaw/openclaw --help

由于不同版本子命令可能不同,建议把--help输出完整看一遍,确认服务启动命令到底是startserve还是run。这一步非常重要,可以避免后续在 systemd 配置里写错命令

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询