dsh-web-fetch-fakeip:解決 mihomo/Clash TUN 模式下的 Web Fetch 問題

在 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

注意事項

  1. 保留地址問題:標準供應商之所以失敗,是因爲 ipaddr.js 將 198.18.0.0/15 標記爲保留地址。此插件通過重新實現策略來繞過此限制。
  2. 手動安裝:除了包安裝,也可以手動複製源碼到 profiles/web/plugins/ 並通過 patch 引入,但官方推薦使用包管理命令。
  3. 權限與安全:插件以當前 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
羽毛球分组比赛记分
小程序二维码

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

小夜