dsh-web-fetch-allowlist:为 web_fetch 配置 CIDR 白名单

前言

DeepSeek Harness(DSH)内置的 web_fetch 在解析域名后会拒绝内网、保留地址段,用来降低 SSRF 风险。对多数公网抓取场景这是合理默认;但若本机走 Clash、mihomo 等透明代理,DNS 可能返回 fake-IP(常见为 198.18.0.0/15),内置校验会把这类地址当成不可达或危险目标,请求在解析阶段就失败。

内置 web_fetch 的防护逻辑不能关闭,也不能通过配置放宽。社区插件 dsh-web-fetch-allowlist(维护者 icceey,目录分类 admin-security)在仍沿用内置解析与校验的前提下,仅在触发 WEB_BLOCKED_URL 时按可配置 CIDR 白名单做额外放行,适合需要在 DSH 里继续用 web_fetch、又必须配合 fake-IP 代理链路的开发者。

这是什么

dsh-web-fetch-allowlist 是对 DSH 内置 web_fetch provider 的补丁型插件:不改变超时、大小上限、重定向、代理、NAT64、字符集等行为,只在内置实现因地址段策略抛出 WEB_BLOCKED_URL 时,判断解析结果是否落在用户配置的 CIDR 内;命中则放行该地址,不命中则原样抛出原有错误。

若内置 provider 不存在,或 DSH 升级导致内部结构变化,插件会保持安静、不介入。

核心功能

  1. 可配置 CIDR 白名单:allowCidrs 支持 IPv4/IPv6;未在插件配置中设置时,可读取环境变量 DSH_WEB_FETCH_ALLOW_CIDRS(逗号分隔)。
  2. 默认覆盖 Clash/mihomo fake-IP 段:未改 fake-IP 配置时,默认包含 198.18.0.0/15,安装后通常无需再改配置(见 README 说明)。
  3. 失败才走白名单:先完整走内置 provider 的解析与校验;仅当错误为 WEB_BLOCKED_URL 时才尝试白名单,错误码与未命中时的语义与内置一致。
  4. 与内置行为对齐:除白名单放行外,其余路径与内置实现相同;避免用插件替代整套 fetch 策略。

安装与启用

在 DSH 管理界面:Plugins → Add plugin,填入仓库地址:

https://github.com/icceey/dsh-web-fetch-allowlist

或使用 CLI(将 <profile> 换成你的 profile 名):

dsh plugin --profile <profile> add github:icceey/dsh-web-fetch-allowlist

管理器提示 restart-required 时,按提示重启 DSH 或重新启用插件后再验证 web_fetch。

插件要求 Node >=22.19(见仓库 package.json 的 engines 字段)。

配置示例

若使用 Clash/mihomo 且未调整 fake-IP,README 写明安装后一般可直接使用。需要显式写出配置时,可在 profile 的插件段增加:

- id: web-fetch-allowlist
  name: 'dsh-web-fetch-allowlist'
  config:
    allowCidrs:
      - '198.18.0.0/15'

allowCidrs 会替换默认值而非追加;若有多个网段,在列表中一并列出。也可通过环境变量 DSH_WEB_FETCH_ALLOW_CIDRS 提供逗号分隔的 CIDR,在未配置 allowCidrs 时生效。

典型用法与行为核对

  1. 保持 DSH 与代理(Clash/mihomo)照常运行,安装并启用本插件。
  2. 通过 Harness 调用内置 web_fetch 访问此前因 fake-IP 被 WEB_BLOCKED_URL 拦截的 URL。
  3. 若解析地址落在 allowCidrs(或环境变量等价配置)内,插件放行;否则仍收到与内置相同的阻断错误。

README 未提供独立演示脚本;验证方式以实际 web_fetch 请求与错误码为准。

适用场景与注意

适合:在本机或固定环境使用透明代理 + fake-IP,且必须在 DSH 智能体流程里使用 web_fetch 拉取页面的场景;需要为特定内网或实验网段增加额外放行(在理解 SSRF 风险的前提下自行收窄 CIDR)。

注意:

  • 白名单放宽的是解析结果所在网段,不等于信任目标 URL;应只配置你确知用途的段(如 fake-IP 池),避免把大范围公网或整个 RFC1918 随意加入。
  • 插件以当前 DSH 进程权限运行;安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认与自身安全策略一致。
  • 社区目录 SkillHub 插件页 与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;版本与行为以仓库 README 为准。

结尾

dsh-web-fetch-allowlist 在不拆掉 DSH 内置 SSRF 防护的前提下,为 web_fetch 增加可配置的 CIDR 放行,默认对齐 Clash/mihomo 的 fake-IP 段,适合代理环境下的抓取调试与日常使用。

  • 目录页:https://www.skillhub.cn/plugins/icceey/dsh-web-fetch-allowlist
  • 源码与文档:https://github.com/icceey/dsh-web-fetch-allowlist
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye