乐于分享
好东西不私藏

保护你的系统:合理配置 OpenClaw,避免数据丢失和系统风险

保护你的系统:合理配置 OpenClaw,避免数据丢失和系统风险

喜欢就
点击上方
关注我们哦~
上回说到,OpenClaw 官方文档提供的安装教程存在问题,即官方文档的安装教程明明说如果通过 install-cli.sh 安装脚本进行安装的话那么就不需要 root 权限或者 sudo 权限,可实际上它在安装必要依赖的过程中会诱导你提供 sudo 密码来获取 sudo 权限。至于解法我在上一回的最后已经说了,即先把依赖提前安装好,后面再通过 install-cli.sh 安装脚本进行安装就不需要 root 权限和 sudo 权限了。然而,仅仅安装好是不够的,还需要知道怎么配置,毕竟 OpenClaw 作为 AI 自动化工具,不合理的配置容易导致个人数据被覆盖或者删除。此外,如果给 OpenClaw 特殊权限,比如 root 权限和 sudo 权限,系统都有可能被搞废掉。当然,基本的配置比较简单,考虑到模型配置涉及密钥等敏感信息外加上 OpenClaw 官方文档、模型供应商、各种中转站以及 AI 和网上的教程,这里就忽略模型配置,所以我们首先简单地过一下如何关闭远程访问配置和联网搜索配置,然后简单说一下如何按照官方文档配置 Docker 沙箱以及如何验证 Docker 沙箱是否配置成功,接着简单说一下 OpenClaw 的沙箱配置中的每一项和对应取值分别表示什么意思,最后以表格形式给出 Docker 沙箱配置中关于文件和目录的字段对应文件位置到底是沙箱内的还是沙箱外的。
01
OpenClaw 远程访问配置和联网搜索配置
OpenClaw 初始化配置很简单,参考上一回内容安装完 OpenClaw 之后通过 WSL2 的 Ubuntu 26.04 终端执行命令 openclaw config 就会弹出交互式配置菜单,对于不同的 OpenClaw 版本而言,这个配置菜单可能会有些许的不同,外加上考虑到 OpenClaw 更新比较频繁,所以这里就假设你已经通过交互式配置菜单安装好并启动 gateway 网关服务且不再一步一步地指导应该如何配置 OpenClaw,仅通过 OpenClaw 配置文件 openclaw.json 给出关键的配置选项应该如何设置,其中 openclaw.json 如果按照上一回的方式安装的话那么就位于 ~/.openclaw 目录内。
考虑到任何服务暴露到公网是有风险的,所以首先需要配置关闭远程访问,这个比较简单,OpenClaw 配置文件 openclaw.json 中找到 gateway 字段,把其中的两个子字段 mode 和 bind 分别设置为 local 和 loopback。对应的 JSON 内容如下所示:
{  ...  "gateway": {    ...    "mode""local",    "bind""loopback"  }}
其中省略号表示其他的和远程访问没有什么关系的配置,无需关注。
其次,虽然 OpenClaw 提供了一个基于 tailscale 的远程访问的安全隧道,但是如果是通过 WSL2+Ubuntu 26.04 的本地安装同样也没必要启动这个安全隧道。关闭这个安全隧道也比较简单,修改 gateway 字段下的 tailscale 子字段即可,考虑到这个子字段下面还有子字段,所以直接给出对应的 JSON 内容,省略号依旧表示没有什么关系的其他配置,对应 JSON 内容如下所示:
{  ...  "gateway": {    ...    "tailscale": {      "mode""off",      "resetOnExit"false    }  }}
接着,可以考虑关闭联网搜索,当然也可以不关,因为远程访问的渠道已经全部被切断了,关闭这个联网搜索很简单,对 tools 字段进行设置,对应 JSON 内容如下所示:
{  ...  "tools": {    ...    "web": {      "search": {        "enabled"false      },      "fetch": {        "enabled"false      }    }  }}
其中省略号还是老样子,依旧表示没有什么关系的其他配置。如果想启用联网搜索直接把上面两个 enabled 子字段值改为 true 即可。
02
OpenClaw 之 Docker 沙箱配置和检验
要想配置 Docker 沙箱,首先必须有一个能用来做沙箱的 Docker 镜像。如果已经按照上一回的安装方式安装好了 Docker 并配置好 rootless 模式的话,那么直接通过运行 OpenClaw 的 GitHub 源码里面的一个安装脚本就可以帮你构建好 Docker 镜像了,比较简单。具体步骤如下所示:
(1)下载 OpenClaw 的 GitHub 源码,GitHub 的链接可以参考上回的内容,这里不再给出。如果下载的是压缩包记得解压,如果是通过 git clone … 的方式,直接跳到下一步。
(2)进入项目目录,运行 scripts 文件夹下的 sandbox-setup.sh 脚本文件或者 sandbox-common-setup.sh 脚本文件即可构建 Docker 镜像。当然,两个脚本对应两个不同的镜像,主要的不同点是镜像的环境不同。其中,sandbox-setup.sh 脚本文件构建的是 openclaw-sandbox:bookworm-slim 的默认镜像,其不包含 NodeJS;然而,如果是通过运行 sandbox-common-setup.sh 脚本文件构建的镜像,那么其会构建名为  openclaw-sandbox-common:bookworm-slim 的通用镜像,里面有诸如 NodeJS、LinuxBrew 等软件。本教程假设构建的是默认镜像。
(3)编辑 OpenClaw 的配置文件 openclaw.json,关键内容如下所示:
{  agents: {    defaults: {      sandbox: {        mode: "all", // off | non-main | all        backend: "docker", // docker | ssh | openshell        scope: "shared", // session | agent | shared        workspaceAccess: "none", // none | ro | rw        workspaceRoot: "~/.openclaw/sandboxes",        docker: {          image"openclaw-sandbox:bookworm-slim",          containerPrefix: "openclaw-sbx-",          workdir: "/workspace",          readOnlyRoot: true,          tmpfs: ["/tmp""/var/tmp""/run"],          network: "none",          user: "1000:1000",          capDrop: ["ALL"],          env: { LANG: "C.UTF-8" },          // setupCommand: "apt-get update && apt-get install -y git curl jq",          pidsLimit: 256,          memory: "1g",          memorySwap: "2g",          cpus: 1,          ulimits: {            nofile: { soft: 1024, hard: 2048 },            nproc: 256,          },          // seccompProfile: "/path/to/seccomp.json",          // apparmorProfile: "openclaw-sandbox",          dns: ["1.1.1.1""8.8.8.8"],          extraHosts: ["internal.service:10.0.0.5"],          // binds: ["/home/user/source:/source:rw"],        },        prune: {          idleHours: 24,          maxAgeDays: 7,        },      },    },  },  tools: {    sandbox: {      tools: {        allow: [          "exec",          "process",          "read",          "write",          "edit",          "apply_patch",          "sessions_list",          "sessions_history",          "sessions_send",          "sessions_spawn",          "session_status",        ],        deny: ["browser""canvas""nodes""cron""discord""gateway"],      },    },  },}
看到这个配置文件内容应该会有人质疑格式问题,毕竟这不是传统的 JSON 语法。但是,我想说的是这是 JSON5 语法,新版本的 OpenClaw 配置文件是支持 JSON5 语法的。JSON5 其实就是 JSON 的扩展,如果配置文件支持 JSON5 语法,其必然支持 JSON 语法,但是反过来却不成立。此外,这不是完整的配置文件内容,其他额外配置我在这里直接省略掉了,连省略号都没有的那种省略。
(4)如果 WSL2 的网络模式设置启用了 localhost 转发,那么就可以在宿主机浏览器通过 localhost:18789 访问 WSL2 内部的 OpenClaw 的网关服务了,其中 18789 是 OpenClaw 网关服务默认端口号,这个可以通过交互式配置菜单或者配置文件 openclaw.json 修改。之后的步骤假设 WSL2 的网络模式设置启用了 localhost 转发并且 OpenClaw 网关服务端口号用的是默认值 18789。
(5)浏览器地址栏输入 localhost:18789 按回车进入登录页面,页面会要求输入密码或者 token 口令,具体输什么取决于之前的配置。注意:登录之前请务必确保模型配置好!!!如何配置模型可以参考 OpenClaw 官方文档、模型供应商、各种中转站以及 AI 和网上的教程,这里不再说明。登录完成之后会跳转到如图所示的页面。
(6)点击右下角的新会话开启新会话,跳转的页面和上图差不多,唯一的不同就是会话从 main 变成了一个随机名称的会话。然后在输入框输入指令“执行 Linux 命令 hostname 并给出运行结果”,接着点击发送。
(7)把这个运行结果和在沙箱外(即 WSL2 的 Ubuntu 26.04)的终端执行同样的 hostname 命令的结果作比对,不一样就说明 OpenClaw 沙箱配置成功了,即命令是通过沙箱执行的。
(8)如果真的出现碰巧沙箱内外结果是一样的,也不是什么大问题,可以先在沙箱外执行 openclaw sandbox recreate –all 命令,命令执行期间会有交互式选项,选择 yes 就会把原来的沙箱删掉,然后跳回第 6 步重试,直到沙箱内外执行 hostname 命令结果不一样为止。一般情况下基本上是一遍过,除非你用的不是上面步骤中所提供的官方的教程而是采用之后我要讲的自己烘焙自定义的 Docker 镜像并把对应的主机名改成和 WSL2 的主机名一样,如何烘焙自定义的 Docker 镜像之后会单独写一篇,因为问题非常多,稍有不注意就会导致沙箱出现问题。
03
OpenClaw 之沙箱配置详细解析
最后简单看一下上面 OpenClaw 关于 Docker 沙箱的配置内容中的每一项的详细信息。
agents.defaults.sandbox
其中 agents 字段表示针对 Agent 的配置,defaults 字段表示针对 Agent 的默认配置,如果需要针对少数 Agent 修改这个默认配置可以去 agents 字段下的 list 子字段中找到对应的 Agent 并添加修改后的对应配置即可覆盖掉 defaults 字段下的默认配置。
sandbox 字段表示针对沙箱的配置,其下又有很多个子字段,其中,mode 子字段表示沙箱运行模式,共有 3 个可选取值,即:off、non-main 和 all。off 表示不用沙箱;non-main 表示非主会话才会启用沙箱,换句话说就是主会话不用沙箱,其中主会话指的是会话名称为 main 的会话;all 表示所有会话都会启用沙箱。
backend 子字段表示用什么沙箱后端,共有 3 个可选取值,即:docker、ssh 和 openshell,3 种不同后端的具体区别可以参考上一回。
scope 子字段表示沙箱的可见范围,共有 3 个可选取值,即:session、agent 和 shared,session 表示当前沙箱只针对当前会话,如果开新会话会创建新的沙箱;agent 表示当前沙箱只针对当前 Agent,如果创建并使用新的 Agent,则会创建新的沙箱;shared 表示当前沙箱针对所有会话和所有 Agent,即不管你开多少个新会话,使用多少个 Agent,沙箱自始至终都只有一个。
workspaceAccess 子字段表示沙箱访问工作区的方式,共有 3 个可选取值,即 none、ro 和 rw,其中 none 表示 ~/.openclaw/sandboxes 目录下的工作区对沙箱可见;ro 表示以只读方式挂载 Agent 工作区到沙箱内的 /agent 目录;rw 表示以读写方式挂载 Agent 工作区到沙箱内的 /workspace 目录。
workspaceRoot 子字段表示沙箱工作目录的根目录,这个子字段的取值是一个目录对应字符串(支持 shell 展开,shell 展开指的是把 ~ 或者 $HOME 给展开成 /home/<用户名>),需要注意的是这里的目录指的是沙箱外的对应目录,在这里是 WSL2 的 Ubuntu 26.04 下的某个目录,千万不要曲解成这是沙箱内的某个目录。docker 子字段我们先跳过,一会在单独讲解。
先看到最后的 prune 子字段,这个表示沙箱存活期限,其中的 idleHours 子字段表示沙箱超过多少小时没有使用就删除,在上面的配置内容中设置的是 24,就表示沙箱超过24 小时没有使用就删除;maxAgeDays 表示如果沙箱创建超过多少天就删除,在上面的配置内容中设置的是 7,就表示如果沙箱创建超过 7 天则删除。
agents.defaults.sandbox.docker
sandbox 字段下还有一个非常复杂的子字段 docker,这个子字段表示如果使用 Docker 后端的沙箱,其对应的 Docker 配置是怎样的,其下又有很多个子字段,其中的 image 子字段表示 Docker 容器(沙箱)对应的镜像,比较简单。
containerPrefix 子字段表示 Docker 容器名称的前缀。
workdir 表示沙箱的工作目录,这里的目录是 Docker 沙箱容器内的目录而不是沙箱外的对应目录(不支持 shell 展开)。相信到这里很多人会糊涂为什么一会这个配置表示的目录是沙箱内的,一会那个配置表示的目录是沙箱外的;为什么一会这个配置表示的目录支持 shell 展开,一会那个配置表示的目录不支持 shell 展开。别急,docker 子字段下的其他字段全部说完会通过一个表格来说明所有表示目录的配置中哪些表示沙箱外的目录哪些表示沙箱内的目录。
readOnlyRoot 字段表示 Docker 沙箱容器的根文件系统是否设为只读,值为 true 表示设为只读,值为 false 表示不设为只读(设为读写)。
tmpfs 子字段表示临时文件系统,其值是一个目录列表(不支持 shell 展开),列表中的目录都是 Docker 沙箱容器内的目录,需要注意的是在该列表中的所有目录下的数据都是临时的,因为其中的数据全部都在内存中,一旦容器出现问题或者被手动停止,再启动容器这些数据会全部消失!!!
network 子字段就比较简单了,表示 Docker 沙箱容器的网络配置,其可选取值非常多,甚至你可以自己定义新的取值,所以就不一一说明每个取值表示什么意思了,这里只要记住 2 个取值就行,第一个就是上面的 none,其表示完全不给 Docker 沙箱容器联网;第二个就是 bridge,这个字段表示通过桥接的方式让 Docker 沙箱容器联网。
user 子字段表示运行沙箱容器对应的用户,该字段对应的值是 1000:1000,这表示的是“用户 ID:组 ID”。
capDrop 子字段表示需要丢弃的 Linux 能力,根据需要设置即可。
env 子字段表示传给 Docker 沙箱容器的环境变量,该字段的值是一个字典,键表示环境变量的名称,值表示环境变量的值。
接着我们看到被注释掉的子字段 setupCommand,其表示创建容器时执行的命令,在上述配置内容中其值是更新软件包元数据和安装软件包的命令。之所以我要把它注释掉,是因为这操作和上面的一些同级别的配置冲突了。需要注意的是该操作一旦运行失败会无法创建沙箱容器!!!要想上述命令成功运行,必须修改以下同级别的配置字段:
  1. readOnlyRoot 改为 false
  2. network 改为 bridge
  3. user 改为 0:0,对应 root 用户的用户 ID 和组 ID
  4. capDrop 改为 [] 或者直接删掉 capDrop 对应项
pidsLimit、memory、memorySwap、cpus 和 ulimits 这些子字段都表示资源分配的配置。其中,pidsLimit 子字段表示整个 Docker 沙箱容器最多创建的进程数量,设置为 256 就说明整个 Docker 沙箱容器最多创建 256 个进程。memory 子字段表示分配给 Docker 沙箱容器的物理内存大小;然而,memorySwap 子字段表示分配给 Docker 沙箱容器的虚拟内存大小;需要注意的是 memorySwap 子字段的值对应内存大小必须大于等于 memory 子字段的值对应内存大小,因为 memorySwap 表示的是物理内存+交换分区的总大小(不是交换分区的大小),物理内存大小通过 memory 指定;举个例子,在上面的配置内容中,memory 子字段对应值是 1g,memorySwap 子字段对应值是 2g,所以物理内存大小为 1g(memory 子字段),交换分区大小则变成了 2g-1g=1g(memorySwap 子字段减去 memory 子字段);显然,我们可以发现如果 memorySwap 子字段的值对应内存大小小于 memory 子字段的值对应内存大小,则会导致交换分区大小变为负值,这在 Docker 的框架下是不被允许的,从而导致 Docker 沙箱容器创建失败。cpus 子字段就比较简单了,表示分配给 Docker 沙箱容器的 CPU 数量,按需进行设置即可。ulimits 子字段表示针对 Docker 沙箱容器内每个用户的资源限制,其中的 nofile 子字段表示控制打开的文件描述符数量,其中的 soft 子字段表示软限制,hard 子字段表示硬限制;这两个限制表示什么意思可以举个例子来说明,在上面的配置内容中,soft 子字段对应值为 1024,hard 子字段对应值为 2048,我们假设其他资源限制参数不会造成瓶颈并且令打开的文件描述符数量记为 N,有以下 3 种情况和对应结果:
  1. N<1024:创建的新进程或者现有进程还能继续打开文件,不会出现任何问题。
  2. 1024≤N<2048:创建的新进程或者现有进程默认不能继续打开文件,尝试打开会收到错误但进程本身不会终止,如何处理收到的错误取决于该进程对应代码的实现,有的是关闭一些已经打开但最近都没用的文件,有的是提高自己的 soft 子字段的值(但不能超过 hard 子字段的值),有的是在不能打开新文件的情况下继续运行。
  3. N=2048:不管是创建的新进程还是现有进程,都不能继续打开文件,除非是特权用户,比如 root,才能在 Docker 沙箱容器内提高这个上限使得 N 可以大于 2048,从而继续打开文件。但是,在不提升上限的情况下,进程打开文件失败并不意味着会死掉,而是收到错误之后依旧继续运行,如何处理收到的错误参考上一种情况。
ulimits 子字段其下的 nproc 子字段表示每个用户能创建的进程数,在上述配置内容中设置的是 256,那么就表示一个用户只能创建 256 个进程。接下来我要讲一下这个 nproc 字段和之前讲的 pidsLimit 字段有什么区别,为了方便理解,我改一下数字,我们假设 pidsLimit 字段设置为 256,nproc 字段设置为 128,Docker 沙箱容器内当前共有 3 个用户,它们创建的进程数量分别记为 N1、N2 和 N3。当 pidsLimit 字段设置为 256,nproc 字段设置为 128,N1、N2 和 N3 必须同时满足以下条件:
  1. max(N1, N2, N3)≤128
  2. N1+N2+N3≤256
换句话说,就是 Docker 沙箱容器内的单个用户最多只能创建 128 个进程(因为 nproc 字段对应的限制),Docker 沙箱容器内的所有用户创建的所有进程总数最多不能超过 256 个(因为 pidsLimit 字段对应的限制)。
seccompProfile 子字段是用来指定一个 seccomp 配置文件,用于限制 Docker 沙箱容器内进程可以执行的系统调用。apparmorProfile 子字段是用来指定一个 AppArmor(应用防护)配置文件,其中 AppArmor 是用来控制进程权限的管理工具。考虑到这两个配置字段需要额外创建两个文件并准确无误地写入对应内容,所以我把这两个配置字段给注释掉了。关于这两个子字段需要注意的是
  1. 两个配置文件必须位于 Docker 沙箱容器的外面,即 WSL2 的 Ubuntu 26.04 里面
  2. seccompProfile 子字段需要通过绝对路径来定位文件,因为不支持 shell 展开
  3. apparmorProfile 子字段只需要指定文件名,然而,这并不意味着它会在当前目录下找对应文件,而是去指定目录下找对应文件,指定目录默认是 /etc/apparmor.d 目录
dns 和 extraHosts 子字段都是网络相关的配置,其中 dns 子字段是用来配置 Docker 沙箱容器内使用的 DNS 服务器,而 extraHosts 子字段是用来在 Docker 沙箱容器的文件 /etc/host 中添加自定义的主机名到 IP 的映射。
最后的 binds 子字段表示需要把 Docker 沙箱容器外(WSL2 的 Ubuntu 26.04 内)的某些目录挂载到 Docker 沙箱容器内,该字段的值是一个列表,列表中的每一项格式如下“目录 1:目录 2:挂载方式”,其中目录 1 表示 Docker 沙箱容器外的某个目录;目录 2 则表示 Docker 沙箱容器内的某个目录;挂载方式有两个取值,分别是 ro 和 rw,ro 表示以只读的方式挂载(只能读取目录中的内容),rw 表示以读写方式挂载(既能读取该目录中的内容也能修改该目录中的内容)。我之所以把它注释掉是因为必须确保列表中的每一项中的目录 1 必须存在,不存在 Docker 沙箱容器会创建失败。此外,还需要注意的是目录 1 和目录 2 必须使用绝对路径,因为不支持 shell 展开。最后需要注意的是目录 1 并不是只要保证存在,有些包含敏感信息的目录 OpenClaw 默认是不会允许挂载到沙箱的,Docker 沙箱容器外的具体哪些目录 OpenClaw 默认不允许挂载到 Docker 沙箱内参见下图。
tools.sandbox.tools
到目前为止,agents 字段下的所有子字段都讲完了。我们看到 tools 字段,tools 字段下面就一个子字段 sandbox,这个 sandbox 子字段表示针对沙箱内的工具(tools)进行管理,sandbox 子字段下面还是只有一个子字段,其名称依旧为 tools,sandbox 子字段下面的 tools 子字段下面有两个子字段,分别是 allow 和 deny,这两个子字段对应值都是列表,allow 子字段表示沙箱内允许使用的工具集合,deny 子字段表示沙箱内不允许使用的工具集合。下面简单说一下上述配置内容中的每个工具的具体用途。
exec 工具是用来执行系统命令或脚本的,我在上文中提供的验证 Docker 沙箱是否配置成功的方法(通过对比 Docker 沙箱内外主机名是否一致,若不一致则证明 Docker 沙箱配置成功)就是通过调用这个工具来实现的。
process 工具是用来管理进程的。
read 工具、write 工具和 edit 工具全是针对文件读写的工具,其中 read 工具是用来读取文件内容的,write 工具和 edit 工具虽然都是用来向文件中写入内容的,但两者还是存在一些区别的,具体有以下两点区别:
  1. write 工具会清除现有内容并重新写入新的内容,edit 工具会在现有内容的基础上做修改
  2. write 工具在文件不存在的情况下会自动创建,edit 工具在这种情况下会直接报错
apply_patch 是用来记录文件修改历史记录的。
sessions_list 工具、sessions_history 工具、sessions_send 工具、sessions_spawn 工具和 session_status 工具是用来管理会话(session)的工具,其中 sessions_list 工具可以用来列出所有会话,sessions_history 工具可以用来查看指定会话的历史消息记录,sessions_send 工具可以用来向指定的其他会话发送消息,sessions_spawn 工具可以用来新建会话,session_status 工具可以用来查看当前会话的状态。
browser 工具可以用来控制网页浏览器进行自动化的网络浏览、页面交互和数据抓取。
canvas 工具可以用来在图形用户界面(GUI)上进行绘图、图像处理或界面自动化操作。
nodes 工具可以用来管理分布式计算环境中的节点或服务器,例如进行集群的部署、监控或维护。
cron 工具可以用来创建、查看或管理系统中的定时任务(计划任务)。
discord 工具可以用来与 Discord 平台进行交互,例如在频道中发送消息、管理服务器或与用户互动。
gateway 工具可以用来控制或访问OpenClaw系统的网关服务,用于管理内部服务间的通信或路由。
OpenClaw 沙箱文件和目录相关配置说明
好了,到目前为止 OpenClaw 的沙箱的配置内容就讲完了,最后我们来看一下上面这些关于目录和文件的配置有哪些字段,以及这些字段对应的目录和文件的位置是在沙箱外还是在沙箱内,如果是目录是否支持 shell 展开,是否必须确保存在,对应答案如下表所示。

OpenClaw 沙箱文件和目录相关配置说明

字段名
字段值格式
位置
支持 shell 展开?
需存在?
workspaceRoot
目录名字符串
沙箱外
workdir
目录名字符串
沙箱内
tmpfs
列表,其中每项是一个目录名字符串
沙箱内
seccompProfile
带完整目录的文件名字符串
沙箱外
apparmorProfile
文件名字符串
沙箱外
binds
列表,其中每项是形如”目录 1:目录 2:挂载方式”的字符串
目录 1:沙箱外
目录 2:沙箱内
目录 1:是
目录 2:否
考虑到这些字段在上述配置内容中只出现了一次,所以我就不写这些字段的上级字段(至于什么是上级字段,我可以举个例子说明,在上述配置内容中,workspaceRoot 字段的上级字段是 sandbox 字段、defaults 字段和 agents 字段)。此外,考虑到 apparmorProfile 字段对应值是文件名字符串而非目录名字符串外加上 shell 展开是针对目录而言的,所以该字段对应的是否支持 shell 展开的表格位我选择空着。
04
总结
总结一下吧,总共说了 4 件事情,首先且最重要的是如何不让本地安装的 OpenClaw 网关服务暴露到公网,具体方法就是关闭远程访问的两个通道,具体是哪两个通道以及如何关闭本文已经说明了,在这里需要声明的是如果是本地安装的 OpenClaw,请自行检查其网关服务是否暴露在公网,如果暴露在公网,除非你知道这样做的后果,否则请立刻马上修改配置!其次,就是如何配置 Docker 沙箱容器以及检验 Docker 沙箱容器是否配置成功,这次参考的是 OpenClaw 的官方文档提供的 Docker 沙箱容器配置教程。接着,我针对沙箱配置进行了逐字段的详细解释,这个主要是参考的 OpenClaw 和 Docker 的官方文档。最后,考虑到 OpenClaw 的沙箱配置中关于文件和目录的相关配置对文件和目录到底是位于沙箱内还是沙箱外,OpenClaw 和 Docker 的官方文档虽然有,但是找起来非常麻烦,我直接整理成了表格,需要的直接参考即可。
关于上述 4 点有不懂的可以后台回复“加群”,备注:Python 机器学习算法说书人,不备注可是会被拒绝的哦~!虽然这一回我参考的是 OpenClaw 的官方文档提供的 Docker 沙箱容器配置教程,但是下一回先不讲如何给 OpenClaw 配置自定义的 Docker 沙箱镜像,而是选择先讲如何把多个 OpenClaw 的 JSON 配置合并起来。
扫码查看更多精彩

点个在看你最好看