DeepSeekDSH
独立社区指南与 DeepSeek 无隶属关系。官方源码快照

让 DSH 在 HTTP/HTTPS 代理网络中正常工作

只有网络确实要求走代理时才用这篇。先确认问题来自网络,再开启 Node 的环境代理,同时避免把 DSH 自己的 localhost 请求也送进公司代理。

本页内容
正常家庭网络不要主动加代理

这篇主要用于公司网络、虚拟机、受限网络或必须通过本地 HTTP/HTTPS 代理访问外网 API 的环境。

先证明这是网络/代理问题

如果 DSH 报 fetch failedECONNREFUSEDETIMEDOUTECONNRESET 或证书错误,而 curl/npm 只有走代理才正常,那么 Key 和模型配置可能没有问题,真正失败的是 Node 进程没有走代理。

npm view @deepseek-ai/dsh version

如果同一个 Shell 里这个最基础的 npm 请求也失败,先处理一般网络问题;npm 正常而 LLM 请求失败,再继续下面步骤。

第 1 步

检查 Node.js 版本

node --version

DSH 当前允许 ^22.19.0 || >=24.0.0,但这里使用的 Node 环境代理开关出现得更晚。上游真实排错记录确认 NODE_USE_ENV_PROXY=1 需要 Node 22.21+ 或支持该功能的 24.x。

能启动 DSH,不代表代理开关一定可用

Node 22.19/22.20 可以满足 DSH engine,但 NODE_USE_ENV_PROXY 仍可能不起作用。先升级 Node,再怀疑代理变量。

第 2 步

设置 HTTP_PROXY 与 HTTPS_PROXY

代理地址使用公司管理员或本地代理程序提供的真实地址。

export HTTP_PROXY=http://proxy.example:8080 export HTTPS_PROXY=http://proxy.example:8080

PowerShell:

$env:HTTP_PROXY="http://proxy.example:8080" $env:HTTPS_PROXY="http://proxy.example:8080"

不要把带真实账号密码的代理地址发到截图、Issue 或公开聊天里。

第 3 步

一定要让 localhost 绕过代理

DSH Web 内部有本机回环通信。把 127.0.0.1localhost::1 加进 NO_PROXY,避免本地 API 被送到公司代理。

NO_PROXY=127.0.0.1,localhost,::1
优先用逗号分隔

近期上游实测发现 Windows 中使用分号分隔的 NO_PROXY 可能无法被 undici 正确解析,导致 localhost 请求也走代理并返回 403。建议使用逗号或空白。

第 4 步

开启 Node 环境代理后启动 DSH

macOS/Linux:

export NODE_USE_ENV_PROXY=1 export NO_PROXY=127.0.0.1,localhost,::1 npx @deepseek-ai/dsh web

PowerShell:

$env:NODE_USE_ENV_PROXY="1" $env:NO_PROXY="127.0.0.1,localhost,::1" npx @deepseek-ai/dsh web

发送一个简单模型请求。如果此时能到达 Provider,就说明原问题是 Node 出站代理,而不是 DSH API Key 或模型选择。

公司 HTTPS 检查可能还需要 CA 证书

部分企业网络会重新签发 HTTPS 流量。如果代理已经生效,但 Node 报证书链错误,管理员可能要求通过 NODE_EXTRA_CA_CERTS 添加公司的受信 CA。

NODE_EXTRA_CA_CERTS=/path/to/company-ca.crt
只使用可信管理员提供的证书

不要从网上随便下载证书去“消除报错”。自定义 CA 会改变 Node 进程信任哪些 HTTPS 证书。

Windows 特别注意

  • 测试时用 $env:NAME="value" 修改当前 PowerShell 会话。
  • setx 写入的持久变量只对新终端生效。
  • NO_PROXY 使用逗号分隔,不依赖分号列表。
  • EADDRINUSE 或 Windows 保留端口 EACCES 属于本地端口问题,不是出站代理问题。

常见代理/网络问题

curl/npm 能走代理,但 DSH 仍直连

确认 Node 版本支持该开关,并在启动 DSH 的同一个 Shell 中设置 NODE_USE_ENV_PROXY=1

DSH Web 能打开,但 localhost API 返回代理 403

检查 NO_PROXY,至少包含 127.0.0.1,localhost,::1,并使用逗号分隔。

NODE_USE_ENV_PROXY=1 看起来无效

检查 Node。22.19/22.20 能运行 DSH,但环境代理开关需要更新版本。

证书链 / self-signed certificate 错误

询问管理员是否存在 TLS inspection,以及是否需要通过 NODE_EXTRA_CA_CERTS 信任公司 CA。

SOCKS 代理不工作

本教程讨论的是 HTTP/HTTPS 环境代理,不要默认 SOCKS URL 能走同一套机制。

下一步网络恢复后仍报错?
打开问题排查 →