前言¶
在使用 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