“代理接受 CONNECT”并不意味着它会接受 APT 发送的每一个请求。

对于普通的 HTTP 仓库,APT 可以使用常规的 HTTP 代理转发:代理收到一个指明目标资源的 HTTP 请求。对于通过 HTTP 代理访问的 HTTPS,客户端通常会建立 CONNECT 隧道,然后通过该隧道协商目标的 TLS 会话。

目标与 HTTP 代理的典型会话
HTTP 仓库转发 HTTP 请求
HTTPS 仓库CONNECT,然后是目标 TLS

只接受隧道的服务可能会拒绝普通的转发请求。HTTP 405 值得查看实际使用的方法、响应的发出方以及代理策略;它并不能证明 APT 缺少 SOCKS 支持,也不能证明其密码有误。

将服务所支持的行为与 APT 传输文档以及 CONNECT 语义 进行比较。请使用兼容的、经批准的服务或受支持的仓库 URL。对于允许公共中间人的公共仓库,HTTP 代理列表 提供了可供对照这些要求进行检查的候选。不要以为在代理地址中加上 https:// 就会改变仓库的协议,或把每个请求都变成隧道。

相关文章