[BUG] 代理环境下 LLM API 请求全部失败:Node fetch (undici) 不读取 HTTP_PROXY/HTTPS_PROXY 环境变量 #3985
Replies: 2 comments
|
确认 +1,并补一个"独立撞上同一根因"的实证:我们的端到端验证装置(真 CLI + 真 OAuth 端点)在代理网络环境下同样全灭于 两个实务补充:
你提的"启动时检测 HTTP(S)_PROXY 存在则自动启用"是最小惊讶的修法,支持。 |
|
补充一个 Windows DSH Desktop 环境下的复现。 我在 DSH 中添加 OpenRouter 作为模型提供方,并在 http_proxy=http://127.0.0.1:<PROXY_PORT>
https_proxy=http://127.0.0.1:<PROXY_PORT>
no_proxy=localhost,127.0.0.1,::1但 DSH 并没有按预期将 OpenRouter 流量转发到代理端口。 实测结果:
核心原因在于:Node 网络模块的初始化先于 DSH 对 临时解决方案是使用自定义 @echo off
setlocal
set "NODE_USE_ENV_PROXY=1"
set "http_proxy=http://127.0.0.1:<PROXY_PORT>"
set "https_proxy=http://127.0.0.1:<PROXY_PORT>"
set "no_proxy=localhost,127.0.0.1,::1"
set "HTTP_PROXY=http://127.0.0.1:<PROXY_PORT>"
set "HTTPS_PROXY=http://127.0.0.1:<PROXY_PORT>"
set "NO_PROXY=localhost,127.0.0.1,::1"
start "" "%LOCALAPPDATA%\Programs\DSH Desktop\DSH Desktop.exe"使用该脚本启动后,OpenRouter 流量会正确转发到本地代理端口,再由代理软件根据域名规则选择代理节点。 环境信息:
希望开发者能够调整代理配置的加载时机,在 Node 网络模块初始化前读取 DSH Home 下的 |
Uh oh!
There was an error while loading. Please reload this page.
Summary
在需要代理才能访问外网的网络环境(如 VMware NAT、公司代理、国内网络)下,dsh 的 LLM API 调用(chat/completions 等)全部失败;必须额外设置 Node 实验性开关
NODE_USE_ENV_PROXY=1才能恢复。根因是 DSH 使用 Node 全局 fetch(undici),而 undici fetch 默认忽略HTTP_PROXY/HTTPS_PROXY环境变量。Environment
@deepseek-ai/dsh)Proxy 环境变量(已脱敏)
All reactions