必须启用并正确配置沙箱环境以保障openclaw代码执行安全:一、用docker容器化隔离运行环境;二、通过openclaw.json配置文件系统读写白/黑名单;三、限制网络仅访问可信域名并屏蔽私有ip;四、用cgroups设定cpu与内存硬性配额;五、禁用rm -rf等高危命令及提权工具。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用OpenClaw执行代码时担忧系统安全,担心AI误操作导致文件删除、命令越权或资源失控,则必须启用并正确配置沙箱环境。以下是实现AI代码执行安全隔离的具体方法:
一、启用Docker容器化沙箱
该方法通过操作系统级隔离机制,将OpenClaw Agent及其调用的模型(如Qwen2.5-VL-7B或GLM-4.7-Flash)运行于独立容器中,确保其文件系统、网络和进程空间与宿主机完全分离。容器默认无root权限,无法修改系统关键路径或发起未授权外连。
1、确认本地已安装Docker Engine或Docker Desktop,并确保服务正在运行。
2、在项目根目录创建docker-compose.yml文件,内容包含cap_drop: ALL、volumes: ./workspace:/app/workspace:ro及networks: { internal: true }三项核心配置。
3、执行docker-compose up -d启动沙箱实例,验证容器内仅能读取指定工作区且无法访问/usr/bin或/etc等敏感路径。
二、配置文件系统白名单与黑名单
该方法通过openclaw.json中的sandbox.filesystem字段显式声明可读写路径与禁止访问路径,从应用层强制约束AI的文件操作边界,防止路径遍历或越权覆盖。
1、定位用户级配置文件:~/.openclaw/openclaw.json。
2、在sandbox对象下添加filesystem子项,设置readOnlyPaths为["/usr/share/dict", "/tmp"],writablePaths为["~/openclaw_workspace"],blockedPaths为["~/Documents", "~/Downloads"]。
3、重启OpenClaw服务使配置生效,测试AI尝试执行rm -rf ~/Documents/*时是否返回Permission denied错误。
三、实施网络访问白名单控制
该方法限制AI仅能向预设可信域名发起HTTP/HTTPS请求,阻断对私有IP段、未知API端点及恶意C2服务器的连接尝试,避免数据外泄或受控指令注入。
1、在openclaw.json的sandbox.network节点中,定义allowedDomains数组,例如["api.github.com", "news.baidu.com"]。
2、启用blockPrivateIPs: true参数,自动拦截所有以10.、172.16.、192.168.开头的地址请求。
3、设置maxConnections: 3限制并发连接数,防止模型因异常逻辑持续建立新连接耗尽系统socket资源。
四、设定CPU与内存硬性配额
该方法利用cgroups对OpenClaw进程组施加资源上限,防止QwQ-32B等大模型推理过程引发CPU满载、内存溢出或系统响应停滞,保障宿主机基础功能稳定。
1、以root权限执行sudo cgcreate -g cpu,memory:/openclaw创建专属控制组。
2、向/sys/fs/cgroup/cpu/openclaw/cpu.cfs_quota_us写入50000,表示每100ms周期最多使用50ms CPU时间。
3、向/sys/fs/cgroup/memory/openclaw/memory.limit_in_bytes写入8589934592(即8GB),强制内存占用不超阈值。
五、禁用高危命令与提权工具
该方法在配置层面直接屏蔽rm -rf、dd、shutdown、chmod 777等具备系统破坏能力的指令,并拒绝任何要求sudo或elevated tools权限的插件加载,从执行源头切断风险链。
1、在.env文件中设置SANDBOX_ENABLED=true并确保未启用ELEVATED_TOOLS=true。
2、编辑openclaw.json,在allowedCommands中仅保留["ls", "cat", "echo", "zip", "tar"]等低风险命令。
3、检查已安装技能包(Skill)清单,严禁安装任何提示“请输入sudo密码”或要求“下载并执行shell脚本”的第三方技能。










