在 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