必须通过独立docker沙箱实现openclaw调用免费开源模型的安全隔离,步骤包括:拉取runtime镜像、构建含cap_drop all和user 1001的定制镜像、验证capeff为零、配置模型级沙箱路由、设置文件系统白名单与拦截、限制网络出口及私有ip访问。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让OpenClaw调用免费开源模型(如Qwen2.5-VL-7B、GLM-4.7-Flash)时,不共享宿主机文件系统、不泄露敏感路径、不意外执行rm -rf命令——这必须通过独立沙箱环境实现,不能仅靠配置文件开关。
创建专属Docker沙箱镜像
第一步:从官方runtime基础镜像拉取并定制,避免复用已有容器导致权限混杂。运行:docker pull docker.all-hands.dev/all-hands-ai/runtime:0.47-nikolaik。
第二步:新建Dockerfile.sandbox-free,内容必须包含CAP_DROP ALL和USER 1001两行,否则模型进程仍可能提权。镜像构建命令为:docker build -f Dockerfile.sandbox-free -t openclaw-sandbox-free .。
第三步:验证镜像是否禁用危险能力——启动临时容器执行ls /proc/self/status | grep CapEff,输出值应为0000000000000000。若非零,则说明cap_drop未生效,【必须重做第二步】。
配置openclaw.json启用隔离沙箱
方法一:直接绑定专属镜像与免费模型
编辑~/.openclaw/openclaw.json,在sandbox节点下添加runtimeContainerImage字段,值设为"openclaw-sandbox-free";同时在llm节点中为免费模型显式指定sandboxEnabled: true。
方法二:按模型名称动态路由沙箱
在sandbox.modelRoutes下新增条目:"qwen2.5-vl-7b": {"image": "openclaw-sandbox-free", "cpuQuota": 200000, "memoryLimit": "2g"}。该写法支持同一OpenClaw实例中混合运行付费/免费模型,且资源配额互不干扰。
注意:若未声明modelRoutes,所有模型将共用runtimeContainerImage设定的镜像,【无法实现模型级隔离】。
PHP中文网提供Qwen-1.0.2.6 MacOS官方客户端下载,专为苹果电脑优化的阿里通义千问桌面应用。本版本深度适配Mac系统,支持本地高效运行与多模态交互,集成超长上下文处理、AI写作、代码生成及智能体构建等核心功能。通过官方渠道下载,确保安全稳定,助您实现智能办公与创作升级。
设置文件系统白名单与硬性拦截
第一步:打开~/.openclaw/openclaw.json,定位到sandbox.filesystem对象。
第二步:将readOnlyPaths设为["/usr/share/dict", "/tmp", "/app/models"]——其中/app/models是模型权重挂载点,必须可读但不可写。
第三步:把blockedPaths设为["~", "/home", "/etc", "/root", "/var/log"],确保AI无法访问用户主目录或系统日志路径。若漏掉/var/log,模型调试时可能意外写入审计日志造成信息泄露。
第四步:重启OpenClaw服务使配置生效:systemctl --user restart openclaw。验证方式:让AI执行cat ~/.bash_history,应返回Permission denied而非内容输出。
限制网络出口并屏蔽私有IP
在openclaw.json的sandbox.network节点中,写入以下三项:
"allowedDomains": ["huggingface.co", "hf-mirror.com", "pypi.org"]——免费模型权重和依赖包仅允许从这三个域名下载。
"blockPrivateIPs": true——自动拒绝所有10.0.0.0/8、172.16.0.0/12、192.168.0.0/16段请求,防止AI误连内网数据库。
"maxConnections": 2——限制并发连接数,避免模型加载多个分片时触发宿主机socket耗尽。此值超过3会导致沙箱初始化失败并静默退出。









