找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4376

积分

0

好友

633

主题
发表于 4 小时前 | 查看: 4| 回复: 0

树莓派电路板特写

无头部署OpenClaw是指在无需显示器或键盘的情况下,在树莓派上运行AI智能代理,完全通过SSH和systemd进行管理,并利用Docker提供容器级安全隔离。本指南将详细介绍如何烧录树莓派操作系统精简版(Pi OS Lite)、安装OpenClaw、配置systemd实现自动重启、通过Docker加固系统,以及使用UFW(简易防火墙)加强网络安全。

为何要在树莓派上运行无头OpenClaw?

在树莓派上运行OpenClaw,你可以获得一个专用的、始终在线的AI智能代理,电费开销仅约4美元(按公开电价计算)。树莓派5在典型负载下的功耗约为6W,远低于最便宜的云虚拟机每月的费用。无头模式去除了桌面环境,为OpenClaw的协调工作释放了约600MB的内存。

树莓派不会在本地运行大语言模型(LLMs)。它充当一个协调层,管理工具调用、渠道集成(如Telegram、Discord、Slack)和工作流自动化,同时将推理任务委托给Anthropic、OpenAI或Google等云API。这意味着,一台配备8GB内存、价值80美元的树莓派5就能轻松处理协调工作,而你的AI预算可以更多地用于API调用,而非硬件投入。

大多数无头树莓派指南仅停留在“安装软件并通过SSH连接”的层面。本指南更进一步:使用systemd进行进程管理、Docker实现容器隔离、UFW设置防火墙规则,以及通过网关令牌轮换来维护凭证安全。如果你的智能代理能够执行代码、发送消息或修改文件,这些安全层就显得尤为重要。

在扩展无头OpenClaw树莓派部署前需检查的事项

首先,选择合适的硬件。推荐使用配备8GB内存的树莓派5作为基准配置。配备4GB内存的树莓派4也能工作,但在处理多个并发工具调用时会显得力不从心。而2GB内存的版本则完全不推荐使用。

SD卡会成为OpenClaw频繁读写SQLite数据库时的瓶颈。使用官方的树莓派M.2扩展板(HAT)搭配经济实惠的NVMe固态硬盘可以解决这个问题,且成本不到30美元。

务必使用官方的27W USB-C电源适配器。当SSD和主动散热器同时耗电时,第三方充电器往往会触发欠压警告。官方树莓派5外壳内置风扇,售价约10美元,可在智能代理持续工作时防止过热降频。

烧录树莓派操作系统精简版

打开树莓派烧录工具(Raspberry Pi Imager),选择树莓派操作系统精简版(64位)。你需要64位版本,因为32位版本不受支持。在烧录前,在烧录工具中配置以下设置:

  • 主机名:gateway-host(或你喜欢的名称)
  • 启用SSH并使用密码认证
  • 设置用户名和密码
  • 如果不使用以太网,则配置WiFi凭据

将镜像烧录到NVMe或SD卡上,插入树莓派并通电启动。等待一分钟让其启动,然后连接:

ssh youruser@gateway-host

连接后,更新系统并安装依赖项:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl build-essential

为无头使用进行优化

由于没有连接显示器,因此减少GPU内存分配,如果不需要使用蓝牙,则将其禁用:

echo 'gpu_mem=16' | sudo tee -a /boot/config.txt
sudo systemctl disable bluetooth

如果你使用的是2GB或4GB内存的树莓派,请配置交换空间。这对于避免内存不足导致的进程终止至关重要:

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
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

安装OpenClaw并配置网关

OpenClaw需要Node.js 22或更高版本。从NodeSource仓库安装:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
node --version

然后安装OpenClaw本身:

curl -fsSL https://openclaw.ai/install.sh | bash

使用守护进程标志运行入门向导,以设置无头操作:

openclaw onboard --install-daemon

这将把网关注册为systemd服务,并提示你输入API密钥。对于无头设备,请使用API密钥认证而非OAuth,因为没有浏览器可用于OAuth重定向流程。

验证网关是否正在运行:

openclaw gateway status

网关默认监听18789端口。在无头树莓派上,你不会直接访问仪表板。相反,从你的笔记本电脑创建一个SSH隧道:

ssh -N -L 18789:127.0.0.1:18789 youruser@gateway-host

然后在本地浏览器中打开http://localhost:18789,以远程访问OpenClaw仪表板。

加快命令行界面(CLI)响应时间

OpenClaw的Node.js CLI受益于编译缓存。将这些添加到你的shell配置文件中:

export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
mkdir -p /var/tmp/openclaw-compile-cache
export OPENCLAW_NO_RESPAWN=1

这减少了CLI命令的冷启动延迟,当智能代理频繁调用工具时,这一点尤为重要。

配置systemd以实现始终在线操作

入门向导会创建一个基本的 systemd 单元文件,但你应该检查并加固它。服务文件位于/etc/systemd/system/openclaw.service:

[Unit]
Description=OpenClaw Gateway
After=network.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi
ExecStart=/usr/local/bin/openclaw gateway start
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

关键设置:Restart=always 确保网关在崩溃或内存不足导致终止后能够恢复。RestartSec=5 添加了短暂的延迟,以避免快速重启循环。After=network.target 依赖项确保在网关尝试连接云API之前网络已可用。

启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

检查服务是否正在运行:

sudo systemctl status openclaw

要实时查看日志:

journalctl -u openclaw -f

如果服务反复失败,请检查最后100行日志以获取具体信息:

journalctl -u openclaw --no-pager -n 100

处理WiFi断开连接问题

使用WiFi的无头树莓派有时会在适配器进入省电模式时失去连接。如果日志中出现间歇性API失败,请禁用WiFi电源管理:

sudo iwconfig wlan0 power off

要永久解决此问题,请添加NetworkManager调度脚本或使用以太网。始终在线的智能代理需要始终在线的连接。

通过Docker加固系统

直接在主机上运行OpenClaw意味着智能代理的工具执行与树莓派上的其他所有内容共享相同的文件系统和网络命名空间。Docker增加了一层隔离,限制了工具调用出错时的影响范围。

在树莓派上安装Docker:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

创建一个具有安全加固设置的docker-compose.yml文件:

services:
  openclaw:
    image: openclaw/gateway:latest
    restart: always
    ports:
      - "127.0.0.1:18789:18789"
    security_opt:
      - no-new-privileges:true
    read_only: true
    tmpfs:
      - /tmp
    env_file:
      - .env.secrets

此配置中有三点需要注意:

端口绑定到127.0.0.1。127.0.0.1:18789:18789绑定意味着网关仅在本地主机上监听,而不是在所有接口上。如果没有此设置,默认的0.0.0.0绑定会将18789端口暴露给网络上的所有设备,且无需认证。你可以使用ss -tlnp | grep 18789验证这一点,它应该只显示127.0.0.1:18789

只读文件系统。read_only: true标志使容器的文件系统不可变。结合tmpfs: /tmp用于临时暂存空间,这可以防止容器内对OpenClaw二进制文件或配置的未经授权修改。

禁止权限提升。no-new-privileges:true安全选项防止容器内的进程在启动后获得额外权限。如果工具执行被攻破,它无法提升到root权限。

将你的API密钥和网关令牌存储在.env.secrets文件中,并设置严格的权限:

chmod 600 .env.secrets

启动容器:

docker compose up -d

加强网络安全

Docker隔离可以防止容器级威胁,但网络级加固可以防止未经授权访问树莓派本身。

UFW防火墙规则

配置 UFW 以默认拒绝所有传入流量,然后仅允许SSH:

sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw enable
sudo ufw status verbose

由于网关绑定到127.0.0.1,因此你不需要为18789端口设置UFW规则。SSH隧道处理远程访问,防火墙阻止其他设备的直接连接。

网关令牌安全

OpenClaw网关令牌控制对你智能代理的访问。生成一个至少包含32个随机字符的强令牌:

openssl rand -hex 32

将其存储在你的.env.secrets文件中,切勿将其存储在版本控制中。每月轮换网关令牌,每季度轮换API密钥。被攻破的令牌将完全控制你的智能代理的工具执行。

为了实现更强的隔离,将树莓派放在自己的VLAN上。配置你的路由器为AI智能代理硬件创建一个专用的网络段,并设置防火墙规则以限制树莓派对互联网的访问以及它需要的任何特定服务(如Home Assistant)。阻止所有对树莓派的入站互联网连接。

如果你的智能代理拥有与家庭自动化、文件系统或外部服务交互的工具,这一点尤为重要。在隔离的VLAN上的被攻破的智能代理无法转移到家庭网络上的其他设备。

运行安全审计

OpenClaw包含一个内置的安全审计工具:

openclaw security audit

这会检查你的配置中是否存在常见问题,如暴露的端口、弱令牌和过于宽松的工具访问权限。对于自动修复简单问题:

openclaw security audit --fix

使用Fastio实现持久存储

无头树莓派智能代理会生成输出:研究文件、处理后的数据、报告、配置备份。将所有内容本地存储在树莓派上会创建一个单点故障。SD卡或NVMe驱动器是唯一的副本,而且树莓派硬件并非为归档存储而设计。

你有几种持久存储选项。本地网络附加存储(NAS)或NFS挂载将数据保留在你的网络上。S3兼容的对象存储(MinIO、Backblaze B2)适用于冷存储。对于需要与人类或其他智能代理共享输出的智能代理工作流,Fastio提供了专为这种交接而设计的工作区。

Fastio工作区允许智能代理上传文件、将它们组织到文件夹中,并通过专门设计的发送、接收和交换工作流进行共享。启用智能模式后,上传的文件会自动索引以进行语义搜索和引用支持的聊天,因此人类审核员可以询问有关智能代理输出的问题,而无需下载和阅读每个文件。

Fastio MCP服务器通过可流式传输的HTTP公开工作区操作,这意味着你的OpenClaw智能代理可以通过MCP工具调用与Fastio工作区交互。上传研究结果、为客户交付创建共享,或通过URL导入将文件从Google Drive和Dropbox拉取到工作区,而无需通过本地I/O操作。

免费智能代理计划包括50GB的存储空间、每月5000个积分和5个工作区,无需信用卡且无过期时间。对于运行个人智能代理的无头树莓派,这足以在需要清理之前处理数月的输出。

当智能代理的工作准备好供人类审核时,所有权转移允许智能代理将整个组织(包括工作区、共享和权限)移交给人类账户,同时保留管理员访问权限以进行持续维护。

常见问题解答

如何在没有显示器的情况下运行OpenClaw?

在树莓派烧录工具(Raspberry Pi Imager)的设置中,刷写精简版(64位)的树莓派操作系统(Flash Raspberry Pi OS Lite (64-bit)),并启用SSH功能。系统启动后,通过SSH进行连接,使用带有 --install-daemon 标志的命令安装OpenClaw,然后通过SSH隧道(端口18789)访问仪表盘。整个过程无需显示器、键盘或桌面环境。

如何在树莓派上保护OpenClaw的安全?

构建多层次防御体系:将网关绑定至本地回环地址127.0.0.1(而非通配地址0.0.0.0),在Docker容器中以只读文件系统(read-only filesystem)和禁用权限提升(no-new-privileges)标志运行,配置UFW防火墙仅允许SSH流量,生成32位长度的网关令牌,并每月轮换凭证。可选方案:将树莓派隔离至专用虚拟局域网(VLAN)。

我可以在树莓派上的Docker中运行OpenClaw吗?

是的。在树莓派上安装Docker,创建一个包含安全加固选项(如read_only(只读)、no-new-privileges(禁止提升权限)、localhost端口绑定)的docker-compose.yml文件,并将凭证存储在权限设置为chmod 600.env.secrets文件中。该容器可在OpenClaw工具执行与主机操作系统之间提供隔离保护。

哪种树莓派型号最适合OpenClaw?

推荐使用配备8GB内存的树莓派5作为基础配置。搭载4GB内存的树莓派4虽可运行,但在处理多个并发工具调用时可能出现性能瓶颈。建议通过M.2扩展板(HAT)连接NVMe固态硬盘替代SD卡,以显著提升OpenClaw执行SQLite数据库操作时的性能表现。

本文由云栈社区编辑整理。




上一篇:下一代计算架构终局:抛弃操作系统,走向硬件隔离+纯微内核+全域沙盒
下一篇:树莓派部署OpenClaw全方案对比:算力分级与5个落地案例
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-5 21:49 , Processed in 0.624012 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表