OpenClaw全栈实战系列(二):从安全角度讲养虾
引言
OpenClaw,俗称“小龙虾”,作为 2026 年开年最热门的开源 AI 助手,凭借“私有化部署、全平台兼容、可扩展插件”三大优势,成为开发者和普通用户的效率工具。它能控制浏览器,接管邮箱,甚至执行系统脚本,实用性拉满。然而,伴随其强大功能而来的,是一个个不容忽视的安全问题:非官方镜像篡改、API 密钥泄露、端口暴露、权限滥用等,一旦操作不当,可能导致设备被入侵、隐私数据被盗,甚至沦为恶意程序的“傀儡”。
这不是危言耸听。其官方文档在安装指引中明确建议“在虚拟机中安装”,而且国内外技术社区的安全专家也反复强调:千万不要在主力电脑上直接运行 OpenClaw。那么我们应该用什么方式来部署它?
本文将从 Docker 容器和虚拟机的隔离两个角度重点解析,并提供完整的部署步骤。目的是为了解决普通用户“不会装、怕不安全”,开发者“想隔离、嫌麻烦”的痛点。
一、OpenClaw 到底有多“危险”?
我们需要先搞清一个问题:OpenClaw 会访问电脑的哪些“敏感地带”?
根据阿里云开发者社区的部署文档,其核心能力包括:
- 文件系统读写:读写桌面文件、整理文件夹、提取文档内容
- 浏览器自动化:操控浏览器访问网页、模拟点击、提取数据
- 键鼠模拟:自动化执行各类 GUI 操作
- IM 工具接入:可接入飞书、微信、Telegram 等,读取和发送消息
这意味着,OpenClaw 运行时拥有当前用户权限下的全部操作能力。如果它存在以下问题,电脑就危险了:
- 供应链攻击:从非官方源下载镜像或安装包,可能会被植入后门
- 依赖库风险:npm 依赖链中的任意一个包被投毒,都会波及 OpenClaw
- 代码漏洞:项目本身存在代码缺陷,可能被利用实现权限提升
- 配置失误:错误配置,可能意外暴露私聊记录、 API 密钥等
这是为何不能在主力电脑上直接跑 OpenClaw 的根本原因。我们需要一道“隔离墙”,将 OpenClaw 关在笼子里,哪怕它出现问题,也不波及宿主机。
二、方案对比
| 对比维度 | Docker | 虚拟机 |
|---|---|---|
| 隔离强度 | ⭐⭐⭐(应用级) | ⭐⭐⭐⭐⭐(系统级) |
| 资源消耗 | ⭐⭐⭐⭐⭐(极低) | ⭐⭐(较高) |
| 部署速度 | ⭐⭐⭐⭐⭐(秒级) | ⭐⭐(分钟级) |
| 快照回滚 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 迁移速度 | ⭐⭐⭐⭐⭐(秒级) | ⭐⭐ |
| 安全系数 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ (较高) |
| 适合场景 | 轻量任务、云环境 | 高安全需求、长期运行 |
| 适用人群 | 开发者、有基础的普通用户 | 新手、注重隐私安全的用户 |
三、Docker 部署(推荐:轻量级 + 快速上手)
3.1 为什么用 Docker 跑 OpenClaw ?
- 快速部署:从安装到运行只需几分钟
- 跨平台兼容:一次配置,到处运行
- 资源可控:通过
--memory等参数限制其资源使用 - 进程级隔离:OpenClaw 运行在独立的容器环境中
- 一键销毁:通过
docker rm -f即可彻底清除
3.2 前置要求
| 操作系统 | 推荐版本 | 要求 |
|---|---|---|
| Windows | Windows 10 专业版 / 企业版、Windows 11 | 1. 需开启 WSL 2 和 Hyper-V 2. 安装 Docker Desktop for Windows 3. 家庭版需手动开启 Hyper-V |
| MacOS | MacOS 12 (Monterey) 或更新版本 Apple Silicon (M1/M2/M3) | 安装 Docker Desktop for Mac |
| Linux | 内核版本 ≥ 5.4 | / |
本节以 MacOS + Docker Desktop for Mac 为例演示
3.3 配置国内镜像源,提升加载速度
# 根据实际情况选择镜像源
{
"registry-mirrors": [
"https://docker.mirrors.aliyun.com",
"https://hub-mirror.c.163.com"
],
"features": {
"buildkit": true
},
"experimental": false
}
3.4 部署方法
方法一: 本地构建,需下载 git 项目
# 下载 git 项目
git clone https://github.com/openclaw/openclaw.git
cd openclaw
- 自动构建,并完成新手引导(推荐)
./scripts/docker/setup.sh
- 手动构建
# 构建本地镜像
docker build -t openclaw:local -f Dockerfile .
# 运行初始化
docker compose run --rm --no-deps --entrypoint node openclaw-gateway \
dist/index.js onboard --mode local --no-install-daemon
# 批量修改网关配置
docker compose run --rm --no-deps --entrypoint node openclaw-gateway \
dist/index.js config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"},{"path":"gateway.controlUi.allowedOrigins","value":["http://localhost:18789","http://127.0.0.1:18789"]}]'
# 后台启动服务
docker compose up -d openclaw-gateway
方法二:远程获取,需下载镜像文件(推荐)
前置准备:工作目录、.env 环境文件和 docker-compose.yml 文件。接下来将从安全的角度讲解如何操作
- 工作目录:设置目录的权限和所有者,确保 Docker 容器能正确读写数据目录
# 创建工作目录
mkdir -p ~/workspace/data
cd ~/workspace
# 设置容器内进程以 UID 1000 运行,防止容器内提权
sudo chown -R 1000:1000 ~/workspace/data
# 设置目录权限
chmod 755 ~/workspace/data
- .env 文件:集中管理应用程序的配置参数,避免硬编码在代码或命令中。可管理访问端口、API 密钥、Token 等
# 创建.env文件
cat > .env << 'EOF'
# 镜像
OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest
# 数据目录
OPENCLAW_CONFIG_DIR=./data/.openclaw
OPENCLAW_WORKSPACE_DIR=./data/.openclaw/workspace
# 端口配置
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_BRIDGE_PORT=18790
OPENCLAW_GATEWAY_BIND=loopback
OPENCLAW_TZ=Asia/Shanghai
EOF
- docker-compose.yml:核心配置文件,用于定义和管理多个 Docker 容器的运行方式
# 创建docker-compose.yml,可直接用项目自带的文件
cat > docker-compose.yml << 'EOF'
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE:-openclaw:local}
container_name: openclaw-gateway
user: "1000:1000"
env_file:
- .env
environment:
HOME: /home/node
TERM: xterm-256color
TZ: ${OPENCLAW_TZ:-UTC}
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
ports:
- "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
- "${OPENCLAW_BRIDGE_PORT:-18790}:18790"
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
read_only: true
tmpfs:
- /tmp:rw,noexec,nosuid,size=64M
init: true
restart: unless-stopped
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${OPENCLAW_GATEWAY_BIND:-loopback}",
"--port",
"18789",
]
healthcheck:
test:
[
"CMD",
"node",
"-e",
"fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))",
]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
openclaw-cli:
image: ${OPENCLAW_IMAGE:-openclaw:local}
network_mode: "service:openclaw-gateway"
user: "1000:1000"
env_file:
- .env
environment:
HOME: /home/node
TERM: xterm-256color
TZ: ${OPENCLAW_TZ:-UTC}
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
read_only: true
tmpfs:
- /tmp:rw,noexec,nosuid,size=64M
stdin_open: true
tty: true
init: true
entrypoint: ["node", "dist/index.js"]
depends_on:
- openclaw-gateway
EOF
安全配置说明:
| 配置项 | 作用 |
|---|---|
user: "1000:1000" | 非root运行,防止容器内提权 |
read_only: true | 只读根文件系统,防止恶意写入 |
tmpfs: - /tmp:rw,noexec,nosuid,size=64M | 临时文件系统限制 |
127.0.0.1:18789 | 端口绑定限制,只监听本地,不对外暴露端口 |
cap_drop: ALL | 最小化权限原则,只保留必要权限 |
- 启动容器
# 拉取远程镜像
docker compose pull
# 运行新手引导,默认会启动 Gateway
docker compose run --rm openclaw-cli onboard
3.5 常用命令
# 后台启动 Gateway
docker compose up -d
# 查看运行日志
docker logs -f openclaw-gateway
# 查看容器状态
docker ps | grep openclaw
# 获取带token的访问链接
docker compose run --rm openclaw-cli dashboard --no-open
# 查看待批准的设备,获取设备的 requestId
docker compose run --rm openclaw-cli devices list
# 批准设备
docker compose run --rm openclaw-cli devices approve <requestId>
# 批准飞书设备
docker compose run --rm openclaw-cli pairing approve feishu <Pairing code>
# 查看已配置的频道
docker compose run --rm openclaw-cli channels list
# 查看当前配置
docker compose run --rm openclaw-cli config get
# 停止容器
docker compose down
# 完全删除,包括数据卷,需谨慎操作
docker compose down -v
3.6 安全访问配置
# 在本地电脑执行以下命令
ssh -L 18789:127.0.0.1:18789 user@your-server-ip
四、虚拟机部署(推荐:高安全性 + 完全隔离)
4.1 为什么用虚拟机跑 OpenClaw ?
如果你计划:
- 让AI自动处理重要文档
- 长时间运行 OpenClaw(7×24小时)
- 接入敏感 IM 账号(微信、飞书等)
那么虚拟机的强隔离是你的“保险单”,即便 OpenClaw 被完全攻破,攻击者也会困在虚拟机里,很难波及宿主机
4.2 选择虚拟化软件
| 宿主机系统 | 推荐软件 | 理由 |
|---|---|---|
| Windows | VirtualBox 或 VMware Workstation | 免费、易用、稳定 |
| MacOS(Intel) | VMware Fusion 或 UTM | UTM对M芯片支持更好 |
| MacOS(M1/M2/M3) | UTM | ARM架构原生支持 |
| Linux | virt-manager (KVM) | 性能最佳、原生支持 |
本节以 Ubuntu + VMware Workstation 为例演示
4.3 在虚拟机里面配置 Ubuntu 系统
- 下载镜像文件
- 可选择 Ubuntu 22.04 LTS Server 版本(轻量、无GUI、资源占用小)
- 我选的是桌面版,可视化,方便使用
- 创建虚拟机:
- 打开 VMware Workstation,点击 -> 新建虚拟机
- 选择镜像路径
- 填写虚拟机名称
- 新建虚拟机向导(可自定义硬件)
- 磁盘大小:至少 30 GB
- 内存分配:至少 4096 MB(4 GB),推荐 8192 MB
- 处理器数量:推荐 4 核
- 网卡:桥接网络或 NAT
- 安装 Ubuntu
- 启动虚拟机,挂载下载的 ISO 镜像
- 按照提示完成安装
- 安装完成后重启
4.4 在 Ubuntu 中安装 OpenClaw
进入虚拟机终端(或通过SSH连接),执行以下命令:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 如果系统里面没有 curl 先安装
sudo apt install -y curl ca-certificates
# 通过 curl 将 Node.js 22.x 的官方仓库添加到系统源列表中
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# 安装 node.js
sudo apt install -y nodejs
# 确认 Node 版本
node --version
# 执行 OpenClaw 一键安装脚本
curl -fsSL https://openclaw.ai/install.sh | bash
相关安装与配置方法可参考《OpenClaw 全栈实战系列(一):三平台一键安装与初始化配置指南》中的详细说明,本文不再重复赘述。
4.5 虚拟机快照——“后悔药”
虚拟机最大的优势之一是快照功能。可在以下时机创建快照:
- 纯净状态:刚开始装好 Ubuntu 系统
- 最好回滚点:安装完 OpenClaw 但未配置
- 省事回滚点:完成所有配置准备运行前
若后续 OpenClaw 配置错乱、被玩坏或疑似感染恶意代码等,只需点击恢复到快照® ,便可返回最初保存的状态。
五、安全加固指南
无论是选择 Docker 还是虚拟机,可通过以下方式提升防护水平:
5.1 通用建议
-
最小权限原则
- Docker:只挂载必要的目录,使用
read_only: true - 虚拟机:除非绝对必要,否则不要共享宿主机的文件夹
- Docker:只挂载必要的目录,使用
-
API Key 管理
- 不要在配置文件中硬编码
- 使用环境变量或密钥来管理服务
- 定期更改 API Key
-
网络隔离
- 仅暴露必要的端口
- 可用 SSH 隧道而非直接端口转发
-
定期更新
# Docker: 拉取最新镜像 docker pull ghcr.io/openclaw/openclaw:latest docker compose up -d # 虚拟机: 更新系统,更新 Openclaw sudo apt update && sudo apt upgrade -y openclaw update
5.2 虚拟机防护建议
- 在虚拟机内运行杀毒软件
- 使用不同密码:虚拟机与宿主机的密码不要相同
- 配置防火墙:
sudo ufw allow from 192.168.1.0/24 to any port 18789
如果说只是想玩一下,可以选择 Docker,轻量、快速、不占空间。但如果想作为“数字员工”长期使用,应选择虚拟机,安全。最后,请记住没有绝对的安全,只有适合的安全。 应该根据风险承受能力和使用场景,选择最适合自己的部署方案。
六、参考文档
- 官方文档:openclaw.ai
- Security and Isolation Comparison:www.upwind.io/glossary/docker-vs-virtual-machines
- How to install an OpenClaw agent on a VPS:support.us.ovhcloud.com/hc/en-us/articles/48965712220435-How-to-install-an-OpenClaw-agent-on-a-VPS
- openclaw本地部署教程超详细:bbs.huaweicloud.com/blogs/475933
- 2026最新版OpenClaw Windows一键部署指南:developer.aliyun.com/article/1726542
- 浅谈Docker隔离性和安全性:cloud.tencent.cn/developer/article/1038005
- 玩转OpenClaw云端创意实践:cloud.tencent.cn/developer/article/2631614?policyId=20240000&traceId=&frompage=homepage
- OpenClaw直连四大办公IM教程:www.qnaptw.com/sys-nd/2111.html
- 浅谈Docker隔离性和安全性:www.dell.com/community/zh/conversations/defaulttopic/%E6%B5%85%E8%B0%88docker%E9%9A%94%E7%A6%BB%E6%80%A7%E5%92%8C%E5%AE%89%E5%85%A8%E6%80%A7/647f546df4ccf8a8dedea386
📌 说明
本文为原创技术实操记录,部分内容由 AI 辅助生成,已由作者深度校验与优化。文中操作仅用于技术学习交流,使用前请做好数据备份,谨慎部署,相关风险由使用者自行承担。
⚠️ 风险提示:OpenClaw 具有完整的系统访问权限,能够读写文件、执行命令。建议安装来源可信的 Skills,并定期审查已安装的技能
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)