前言¶
DeepSeek Harness 原生的 web_fetch HTTP provider 默认拒绝所有非公网地址,这是重要的 SSRF 安全边界。但在以下场景中,目标明明可信,也可能被提前拦截:透明代理(如 Clash、Mihomo)的 Fake-IP 模式把公网域名解析到保留网段;Agent 需要读取企业内网文档站、自建知识库或其他受信任的私有网络服务。dsh-web-fetch-enhanced 插件允许管理员显式配置两层例外,在保持模型侧 web_fetch 用法不变的前提下,扩大可控的网络范围。
插件简介¶
该插件由 Yurzi 维护,采用 MIT 许可证。它为 DeepSeek Harness 提供安全、可控的增强型网页抓取能力。插件默认拒绝非公网目标,只有明确命中的 CIDR 例外才会放行。
核心功能¶
- 与原生工具完全兼容:不增加新模型工具,Agent 继续调用
web_fetch。 - 网页端即时配置:在 DSH Web 设置中编辑白名单,保存后下一次抓取立即生效。
- 双层白名单机制:
- CIDR 白名单:配置允许的 IPv4 / IPv6 网段。
- 域名白名单(可选):作为第二因子,将可访问网段进一步限制到精确域名或通配域名。
- DNS 校验与连接固定:所有解析结果必须合规,连接只使用已验证的地址。
- 重定向逐跳复核:仅跟随同源重定向,并在每一跳重新解析、校验和固定地址。
- 受限匿名请求:只发送无 Cookie、无 Authorization、无 URL 凭据的 GET 请求。
- 资源上限控制:限制 URL、响应字节、解码字符、重定向次数和超时时间。
- IPv4 / IPv6 防护:覆盖 IPv4-mapped IPv6 与活动 DNS64 / NAT64 目标检查。
- 全局出站代理协同:无缝对接 DSH 全局 HTTP 代理路由,同时严格禁止非公网 IP 字面量越权走代理。
- 动态系统提示词协同:当配置了非公网白名单时,自动向模型系统提示词注入显式授权声明。
安装与启用¶
推荐使用 DSH 的插件管理命令。安装包会把随包发布的 cordis.patch.yml 作为 Profile patch 层应用:
dsh plugin --profile web add dsh-web-fetch-enhanced
如果 Web Profile 已经在运行,请按你的部署方式重启对应的 Host 进程,使新插件和 Client face 完成装载。
配置白名单¶
打开 DSH Web,进入 插件 → dsh-web-fetch-enhanced。详情页直接显示白名单表单。
- 配置 CIDR:在“允许的 CIDR”中每行填写一个网段。例如 Clash / Mihomo 的常见 Fake-IP 配置:
198.18.0.0/15
- 配置域名(可选):如果希望只有指定网站可以使用上述例外,再填写“允许的域名”:
api.example.com
*.docs.example.com
- 保存:点击“保存”,下一次
web_fetch就会使用新规则。无需重启 Profile。
使用示例¶
- 读取内网文档:
读取 https://wiki.corp.example/guide,并总结部署步骤。 - 配置特定网段:
配置允许的 CIDR 为 10.20.0.0/16。 - 配置特定网段:
配置允许的 CIDR 为 198.18.0.0/15。
安全注意事项¶
- 白名单会扩大 Agent 可发起 HTTP 请求的网络范围。只放行你理解并信任的最小目标。
- 不要加入
0.0.0.0/0或::/0。 - 不要加入云元数据地址,例如
169.254.169.254/32。 - 不要加入不必要的整个
10.0.0.0/8、172.16.0.0/12或192.168.0.0/16。 - 不要加入由不可信代理、DNS 或租户共同控制的网段。
- 即使配置了白名单,Host 仍会重新执行完整的 CIDR、域名、DNS 和 provider 身份校验。
版本与兼容性¶
- 最低支持的 DSH 版本:
0.2.0-rc.2(支持范围>=0.2.0-rc.2 <0.3.0-0)。 - 版本支持策略:本插件仅对 DeepSeek Harness 的 RC(Release Candidate)候选发布版本及后续稳定正式版提供支持。由于 Alpha 或开发快照版本更迭频繁且缺乏稳定的 API 保证,本插件不再对 Alpha 等非 RC 阶段版本进行维护与适配。
结语¶
此插件通过精细化的白名单控制,让 DeepSeek Harness 在保持安全边界的同时,能够处理复杂的代理环境与内网访问需求。更多细节可参考 GitHub 仓库。