前言¶
在 WSL 環境中使用 DeepSeek Harness 的 web_fetch 時,默認行爲會繞過系統代理,直接通過 Linux 內核解析 DNS 並連接目標 IP。這導致在需要通過代理訪問互聯網的場景下,web_fetch 請求會失敗。dsh-wsl-fetch 旨在解決這一問題,它接管官方 web_fetch,通過 Windows 的 HTTP 代理進行轉發。
是什麼¶
這是一個聯網工具插件,由用戶 173787247 維護。它的核心作用是註冊 wsl-proxy fetch provider,利用 undici 的 ProxyAgent 在進程內工作,使官方 web_fetch 能夠讀取並使用 Windows 的 HTTP 代理設置。
核心功能¶
- 使用 Windows HTTP 代理發送官方 web_fetch:將原本直接連接的請求通過 Windows HTTP 代理路由。
- 註冊 fetch provider wsl-proxy:在 DSH 系統中註冊該 provider,供
web_fetch調用。 - 進程內代理工作:依賴 undici 的
ProxyAgent,在當前 DSH 進程中執行代理邏輯。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add github:173787247/dsh-wsl-fetch
安裝後,插件僅當環境變量 HTTP(S)_PROXY 被設置時纔會生效。若未設置該環境變量,插件雖然註冊,但處於不可用狀態。
配置¶
插件支持通過配置文件調整行爲:
- id: dsh-wsl-fetch
name: dsh-wsl-fetch
config:
timeoutMs: 30000
maxRedirects: 5
retries: 2
retryDelayMs: 400
| 配置項 | 默認值 | 說明 |
|---|---|---|
timeoutMs |
30000 | 請求超時時間(毫秒) |
maxRedirects |
5 | 最大重定向次數 |
retries |
2 | 失敗重試次數 |
retryDelayMs |
400 | 重試基礎延遲(毫秒) |
注意事項¶
- 版本依賴:需要 dsh 版本 >= 0.1.2。
- 本地 URL 限制:私有或本地 URL 會被阻斷,無法通過代理訪問。
- Cloudflare 處理:如果通過 Clash 訪問 Cloudflare 遇到 403 或 1010 錯誤,這是網站防火牆(WAF)攔截,需要在 Clash 中配置
DIRECT規則,該插件無法繞過 WAF。 - 模型配置:插件不負責配置 Cloud Flash 模型 ID,需要手動在
~/.dsh/settings.yaml中設置。
測試¶
安裝後可運行以下命令進行測試:
npm test
bash scripts/stress.sh