本地更新程序忽略标准代理环境变量
作者: NullChris0创建于 2026年9月15日更新于 2026年9月16日
标签needs triage
“npx 完美更新”在管理/公司网络上失败,在网络上无法直接访问GitHub, 或被DNS过滤, 即使配置了标准代理环境变量,代理运行正确。
本地引擎使用 “ ureq ” , 但其目前的构建无法允许来自环境的代理支持 :
`crates/context/cargo.toml' " 软件
时间轴: ureq={版本="2",默认地貌=虚假,特征=['tls',"json"]].
`crates/技能/cargo.toml'具有相同的功能。
共享代理构建器也只安装自定义的 TLS 信任配置 :
`crates/context/src/http.rs' (中文(简体) ).
```7ZZ
pub fn agent builder () - > 尿素: AgentBuilder {
ureq: AgentBuilder:: new (.).tls config(tls config ())
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
因此,HTTP-PROXY'、HTTPS-PROXY'和`ALL-PROXY'不影响本地捆绑或引擎下载。
- 复制
在我的机器上:
嘘 HTTPS PROXY=http://127.0.0.1:7892 HTTP PROXY=http://127.0.0.1:7892 All PROXY=socks5=127.0.0.1:7892
npx 完美更新 -- -- 用户
本地代理可以到达,支持HTTP CONNECT和SOCKS5两种.
例如,通过 HTTP 代理获取发行签名会成功:
嘘
卷起-fL-x http://127.0.0.1:7892\
https://GitHub.com/pbakaus/impecable/releases/download/skill-v4.3.1/universal.zip.sig.json (英语).
但“ npx 完美更新”失败 :
页:1 下载失败: 无法校验技能捆绑 : https://GitHub.com/pbakaus/impecable/releases/download/skill-v4.3.1/universal.zip.sig.json: 页面存档备份,存于互联网档案馆. 连接失败: 连接出错: 连接被拒绝( 错误 111)
`strace-f-e track=connect' 显示绕过配置的代理和直接连接的本地进程 :
页:1
104.26.x.x:443 #无可挑剔. style-成功出道.
127.0.0.1: 443 # GitHub.com — 失败
`127.0.0.1 ' 地址来自公司DNS解决方案:
页:1 GitHub.com - > 127.0.0.1 (中文(简体) ).
这是有意的网络过滤,而不是破碎的本地代理. 直接的GitHub访问不可用,而通过配置的HTTP代理工程访问.
为#479引入的签名-捆绑流使这一点特别明显,因为从 " impecable.style " 改道之后,有人要求GitHub托管的 " sig.json " 文件。
预期行为
原生HTTP请求应尊重常规代理环境变量,因此公司代理,被过滤的DNS,VPN,或类似的网络设置背后的用户可以使用更新器而无需全系统TUN.
建议改正
为本地下载器启用“ ureq” 代理支持, 例如 :
时间轴:
ureq = { (中文(简体) ).
版本 = "2",
默认特征 = 假,
特性 = ["tls","json","proxy-从-env","socks-proxy"] .
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
如果需要,在共享代理构建器中明确行为:
pub fn agent builder () - > 尿素: AgentBuilder {
ureq: 代理制造器: 新建( )
.tls config(tls config ()) (中文(简体) ).
.try proxy from env(真实)
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
当“ALL-PROXY”配置时,`socks-poxy'很重要。 . . . . . . .
内容来源: pbakaus/impeccable