在 DeepSeek Harness (DSH) 的 web seam 中,web_fetch 是常用的工具。当机器 DNS 运行在透明代理(TUN)后的 fake-ip 模式下,标准供应商 @deepseek-ai/dsh-web-fetch-http 会拒绝请求。这是因为 ipaddr.js 将默认的 198.18.0.0/15 区块分类为保留地址,导致工具无法解析域名。dsh-web-fetch-fakeip 作为一个即插即用替代品,解决了这个问题,无需禁用 fake-ip 或设置代理环境变量即可保持工具工作。
插件定位¶
dsh-web-fetch-fakeip 是一个 fake-ip 感知的 WebFetchProvider,用于替换 @deepseek-ai/dsh-web-fetch-http。它重用了标准供应商的整个传输层,仅替换了目的地策略,使其能够在 mihomo/Clash TUN 模式及 fake-ip DNS 下正常工作。
安装与启用¶
通过 DSH 的插件系统安装,这是目前推荐的方式:
dsh plugin --profile web add dsh-web-fetch-fakeip
安装后,插件会自动应用 cordis.patch.yml 层,禁用原供应商并启用此插件。
版本兼容性¶
如果遇到加载失败,可能是由于 DSH 版本不兼容。DSH 0.2.0-rc.2 引入了 peerDependencies 检查,如果版本不匹配(例如旧版本 0.1.1),插件会被跳过。此时需要更新插件:
dsh plugin --profile web update dsh-web-fetch-fakeip
重启生效¶
安装或移除插件后,必须重启配置文件才能使变更生效。patchReload: live 观察者无法动态重新加载 dsh.profile.bundles 列表。
配置说明¶
默认配置(推荐)¶
大多数情况下无需额外配置。插件默认适配 mihomo/Clash 的默认 dns.fake-ip-range(198.18.0.0/15)。
自定义 fake-ip 范围¶
如果您的代理配置了非标准的 fakeIpRanges,需要在配置中指定:
- id: web-fetch-http
disabled: true
- insert:
- id: web-fetch-fakeip
name: 'dsh-web-fetch-fakeip'
config:
fakeIpRanges:
- 10.18.0.0/16
- 198.18.0.0/15
注意事项¶
- 保留地址问题:标准供应商之所以失败,是因为
ipaddr.js将198.18.0.0/15标记为保留地址。此插件通过重新实现策略来绕过此限制。 - 手动安装:除了包安装,也可以手动复制源码到
profiles/web/plugins/并通过 patch 引入,但官方推荐使用包管理命令。 - 权限与安全:插件以当前 DSH 进程的权限运行。在安装前,建议检查源码与许可证(MIT)。
总结¶
dsh-web-fetch-fakeip 修复了在 TUN 模式下使用 fake-ip DNS 时的兼容性问题。它提供了最简单的配置方式,适合需要保持代理环境纯净、不依赖环境变量的开发者。
- 项目主页: https://github.com/kaminn/dsh-web-fetch-fakeip
- 插件目录: https://www.skillhub.cn/plugins/kaminn/dsh-web-fetch-fakeip