本地更新程序忽略标准代理环境变量

作者: 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