ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeerFlow 如何为 Docker AIO 沙箱配置 isolated 或 allowlist 出站网络策略

DeerFlow 如何为 Docker AIO 沙箱配置 isolated 或 allowlist 出站网络策略 DeerFlow 如何为 Docker AIO 沙箱配置 isolated 或 allowlist 出站网络策略【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flowDeerFlow 的 AIO 沙箱默认保持正常的 Docker 出站流量open模式。如果沙箱里运行的是模型生成的命令你往往希望收紧它的出站范围完全禁止出网isolated或者只放行指定的 HTTP/HTTPS 域名allowlist。这两个策略都是 DeerFlow 为本地管理的 Docker 沙箱提供的出站网络策略egress policy通过config.yaml中的sandbox.network配置块启用。适用前提是沙箱使用deerflow.community.aio_sandbox:AioSandboxProvider且是本地 Docker 后端不带provisioner_url的 DooD 模式Docker Engine 版本为 28 或更新。Apple Container 运行时和 provisionerKubernetes模式不支持受限模式会在这些环境下 fail closedmacOS 上即使 Gateway 偏好 Apple Container只要当前 sandbox 前缀下还有托管的 Docker 沙箱Gateway 也会继续用 Docker 完成清理后再切换运行时。相关说明见 backend/docs/CONFIGURATION.md 的 “Sandbox network policy” 与 “Sandbox container network exposure and hardening” 章节选项注释参考 config.example.yaml。三种出站模式的区别模式行为open默认保持正常的 Docker 出站流量与未配置策略时一致。isolated每个沙箱挂在独立的内部 bridge 网络上拒绝所有出站流量。allowlist与isolated使用同一套内部 bridge另加一个受信任的 sidecar 代理只支持 HTTP 和 HTTPS CONNECT。allowlist的域名匹配规则接受精确域名和*.pythonhosted.org这类前导通配符URL、端口以及兜底的*会被拒绝。即使有流量绕过代理环境变量内部 bridge 上也没有通往外网的路由。DeerFlow 同时会设置上游 AIO 镜像的PROXY_SERVER/PROXY_EXCLUDE变量让内置 Chromium 走同一个 sidecar并设置标准的 HTTP、HTTPS、ALL 代理变量覆盖 shell 和包管理工具客户端。需要严格来源级 HTTPS 隔离的场景要注意sidecar 验证 CONNECT 的 authority 和 TLS ClientHello 的 SNI但不拦截 TLS加密的Host/:authority不可见——恶意客户端仍可能触达同一允许端点上共存的另一个虚拟主机。文档给出的做法是改用isolated模式或使用自管 TLS 检查的出站网关。在 config.yaml 中配置策略配置文件放在项目根目录deer-flow/config.yaml如果进程不在该目录启动可设置DEER_FLOW_PROJECT_ROOT或用DEER_FLOW_CONFIG_PATH指向具体文件。完全断网isolatedsandbox: use: deerflow.community.aio_sandbox:AioSandboxProvider network: mode: isolated按域名放行allowlistsandbox: use: deerflow.community.aio_sandbox:AioSandboxProvider network: mode: allowlist allow_domains: - pypi.org - files.pythonhosted.org - registry.npmjs.org approval: prompt temporary_grant_ttl: 300allowlist下各字段的取值来自 config.example.yamlmodeopen | isolated | allowlist默认openapprovaldeny | prompt控制被拒公网域名的处理方式见下文temporary_grant_ttl临时放行的有效期单位秒取值 30–3600proxy_image策略 sidecar 镜像默认ghcr.io/bytedance/deer-flow-sandbox-network-proxy:latest。文档建议如果生产环境要求供应链固定应对network.proxy_image做镜像源同步或按 digest 固定。注意区分配置变量与环境变量DEER_FLOW_SANDBOX_NETWORK是旧版open模式的逃生口透传为--networkhost、container:name、none在启动时会被拒绝它不是受管隔离的入口——受限模式下该变量会被忽略沙箱使用自己的每沙箱内部网络。策略实际拦截什么代理 sidecar 在 DNS 解析之前就拒绝策略不允许的主机名被允许的主机名如果解析到 loopback、私有地址、link-local、多播、IPv6 ULA/site-local 或云元数据地址一律拒绝且永远不能被批准放行纯 HTTP 连接只承载一个完整成帧且经过策略检查的请求sidecar 随后关闭上游连接防止流水线复用第一条请求的判定受限模式下裸 TCP/UDP、Git-over-SSH 以及其他非 HTTP 协议均不可用。approval: prompt时被拒绝的公网域名会变成一个 Human Input 卡片提供Deny、Allow temporarily、Allow for this sandbox三个选项。DeerFlow 不会在批准后重放那条失败命令它可能已经产生了本地副作用需要 agent 显式重试。非交互式运行则自动拒绝不打开卡片、不等待输入。验证与切换模式时的行为文档没有提供单独的“策略自检”命令判断依据是上述可观察行为在allowlist模式下让沙箱访问一个不在allow_domains里的公网域名交互式会话应出现带三个选项的 Human Input 卡片非交互式运行直接自动拒绝。访问允许域名如pypi.org则正常经代理出去。让沙箱尝试访问私有/loopback 等保留地址段应被直接拒绝且不存在批准入口。在isolated模式下任何出站流量都应失败。环境不满足前提时策略 fail closedApple Container、provisioner 模式、低于 28 的 Docker Engine 均不支持受限模式。切换模式有一个明确的兼容行为沙箱、sidecar、内部网络和出站网络都携带有效策略、代理来源和镜像引用的摘要。Gateway 重启后在open与受限模式之间切换会被报告为不兼容的持久化沙箱只有经过正常的归属、孤儿宽限和拆除围栏之后才会被替换重建。旧版本 DeerFlow 留下的无标签open容器如果用的是配置的镜像会被识别并保留其已发布的 API 端口。与 aioDooD模式的关系受限网络策略依赖本地 Docker 后端直接管理沙箱容器。纯 DooD 的aio模式需要把宿主机 Docker socket 挂进 Gateway默认 Compose 栈不挂载 socket它只通过可选叠加层 docker/docker-compose.dood.yaml 添加scripts/deploy.sh和scripts/docker.sh在detect_sandbox_mode()返回aio时会自动追加该叠加层。文档同时提醒挂载 Docker socket 等价于把宿主机 root 交给 GatewayDooD 部署应把宿主机视为 Gateway 信任边界的一部分需要更强隔离或多租户场景时优先 provisioner/Kubernetes 模式——而后者正是不支持本策略的模式需要在隔离强度与出站策略之间做取舍。边界与限制小结仅支持本地 Docker 后端 Docker Engine 28Apple Container 只支持network.mode: open。只支持 HTTP/HTTPS 出站其余协议在受限模式下不可用。保留地址段私有、loopback、link-local、多播、ULA、云元数据永远拒绝且不可批准。生产环境建议对network.proxy_image做 digest 固定。沙箱容器本身的默认加固capabilities 收窄、no-new-privileges、CPU/内存/PID 限制等是独立于出站策略的另一层 Docker-only 配置详见 backend/docs/CONFIGURATION.md 中的环境变量表。【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表