前言¶
在使用 DeepSeek Harness (DSH) 的 Windows + WSL 環境中,瀏覽器能正常訪問 HTTPS,但 WSL 中的智能體進程卻無法連接。這通常由代理配置或 Node.js 24 的行爲導致:Clash / V2Ray 等代理軟件在 Windows 上運行,而 Node 24 的 fetch 默認忽略環境變量,除非顯式設置 NODE_USE_ENV_PROXY=1。插件 dsh-wsl-net 旨在診斷這些網絡問題,並返回可複製的修復腳本。
插件定位¶
dsh-wsl-net 是一個 DeepSeek Harness 的聯網診斷工具插件。它屬於 dsh-wsl-kit 套件的一部分,與 dsh-wsl-env 配對使用。
核心功能¶
該插件主要解決 WSL 下的網絡可達性問題,具體包括以下能力:
- 環境變量報告:讀取並展示
HTTP_PROXY、HTTPS_PROXY、ALL_PROXY、NO_PROXY等變量,其中用戶信息(如用戶名/密碼)會被脫敏隱藏。 - 進程環境比對:檢查當前
dsh web進程(dshWeb)的環境變量,以便區分工具進程與宿主機進程的代理配置差異。 - 端口探測:對配置的代理端口(
proxyListen)進行 TCP 探測,確認端口是否在監聽。 - 服務可達性探測:探測 DeepSeek API 和 npm registry 的連通性(HTTP 狀態碼小於 500 視爲可達,401 亦計入)。
- 修復腳本生成:返回診斷建議和修復步驟/腳本。若當前有配置代理,腳本會複用;否則返回默認模板(如
127.0.0.1:7890),需手動編輯。 - 子進程代理注入:可選地將
NODE_USE_ENV_PROXY=1及小寫的http_proxy別名注入到 bash/npm 的子進程中。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add github:173787247/dsh-wsl-net
安裝完成後,重啓 dsh web。在新的會話中,Tools 列表裏會出現 net_doctor 工具。
典型用法¶
在對話框中直接提問即可觸發診斷:
“Check whether DeepSeek API and npm are reachable.”
如果啓用了“子進程代理注入”功能,可以通過以下命令驗證環境變量是否已注入:
node -e "console.log(process.env.NODE_USE_ENV_PROXY, process.env.http_proxy || process.env.HTTP_PROXY)"
當子進程被正確包裹時,預期輸出爲 1 以及你的代理 URL。
配置與參數¶
插件支持通過配置文件調整行爲。在 DSH 的配置中,可以添加以下內容:
- id: dsh-wsl-net
name: dsh-wsl-net
config:
timeoutMs: 20000
probeTimeoutMs: 5000
injectChildProxy: true
| 參數 | 默認值 | 說明 |
|---|---|---|
timeoutMs |
20000 |
工具執行超時時間 |
probeTimeoutMs |
5000 |
單次探測超時時間 |
injectChildProxy |
true |
是否注入代理環境變量到子進程 |
工具的執行參數 target 用於指定檢查範圍:
all:默認,檢查所有內容。env:僅檢查環境變量。deepseek:僅檢查 DeepSeek API。npm:僅檢查 npm registry。
注意事項¶
使用前需明確該插件的侷限性:
- 不修復 in-process web_fetch:插件主要處理進程級和子進程級的網絡問題。如果問題出在 DSH 主進程內部的
web_fetch(例如使用dsh-wsl-fetch插件),本插件無法解決。 - 不打印 API 密鑰:出於安全考慮,插件不會輸出任何 API 密鑰。
- 不更改 Clash 端口:插件不會自動修改 Clash 或 V2Ray 的端口配置。
- 不編造代理 URL:如果當前未配置代理,插件不會憑空生成一個代理 URL,只會返回模板或建議。
結語¶
dsh-wsl-net 是解決 WSL 環境下網絡連通性問題的實用工具。通過它,開發者可以快速定位代理配置與 Node.js 24 行爲之間的衝突,並獲取修復腳本。建議配合 dsh-wsl-kit 中的其他組件使用。
- 插件目錄:SkillHub 插件頁
- 源碼倉庫:GitHub