让 DSH 在 HTTP/HTTPS 代理网络中正常工作
只有网络确实要求走代理时才用这篇。先确认问题来自网络,再开启 Node 的环境代理,同时避免把 DSH 自己的 localhost 请求也送进公司代理。
本页内容
这篇主要用于公司网络、虚拟机、受限网络或必须通过本地 HTTP/HTTPS 代理访问外网 API 的环境。
先证明这是网络/代理问题
如果 DSH 报 fetch failed、ECONNREFUSED、ETIMEDOUT、ECONNRESET 或证书错误,而 curl/npm 只有走代理才正常,那么 Key 和模型配置可能没有问题,真正失败的是 Node 进程没有走代理。
npm view @deepseek-ai/dsh version如果同一个 Shell 里这个最基础的 npm 请求也失败,先处理一般网络问题;npm 正常而 LLM 请求失败,再继续下面步骤。
检查 Node.js 版本
node --versionDSH 当前允许 ^22.19.0 || >=24.0.0,但这里使用的 Node 环境代理开关出现得更晚。上游真实排错记录确认 NODE_USE_ENV_PROXY=1 需要 Node 22.21+ 或支持该功能的 24.x。
Node 22.19/22.20 可以满足 DSH engine,但 NODE_USE_ENV_PROXY 仍可能不起作用。先升级 Node,再怀疑代理变量。
设置 HTTP_PROXY 与 HTTPS_PROXY
代理地址使用公司管理员或本地代理程序提供的真实地址。
export HTTP_PROXY=http://proxy.example:8080
export HTTPS_PROXY=http://proxy.example:8080PowerShell:
$env:HTTP_PROXY="http://proxy.example:8080"
$env:HTTPS_PROXY="http://proxy.example:8080"不要把带真实账号密码的代理地址发到截图、Issue 或公开聊天里。
一定要让 localhost 绕过代理
DSH Web 内部有本机回环通信。把 127.0.0.1、localhost、::1 加进 NO_PROXY,避免本地 API 被送到公司代理。
NO_PROXY=127.0.0.1,localhost,::1近期上游实测发现 Windows 中使用分号分隔的 NO_PROXY 可能无法被 undici 正确解析,导致 localhost 请求也走代理并返回 403。建议使用逗号或空白。
开启 Node 环境代理后启动 DSH
macOS/Linux:
export NODE_USE_ENV_PROXY=1
export NO_PROXY=127.0.0.1,localhost,::1
npx @deepseek-ai/dsh webPowerShell:
$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 能走同一套机制。