APT 无需包装器即可使用 SOCKS5h
对于文档中支持 SOCKS5h 的 APT 版本,代理 URI 应放在 HTTP 或 HTTPS 传输设置下,而不是放进虚构的 Acquire::socks 段。
关于“通过 SOCKS 使用 APT”的旧答案常常推荐包装器或 HTTP-to-SOCKS 中继。那些答案可能描述了旧版本的真实限制。但在文档中支持 socks5h 的 APT 版本上,它们并不是唯一选择。
配置片段可以使用现有的获取传输键:
Acquire::http::Proxy "socks5h://127.0.0.1:1080/";
Acquire::https::Proxy "socks5h://127.0.0.1:1080/";
此示例假定同一台机器上已经存在一个经授权的 SOCKS5 监听器。它不会启动监听器。SSH 动态转发是创建该本地监听器的一种方式。如果代理在远程,请改用其真正可达的端点;SOCKS5 代理列表中的候选仅适用于允许使用公共代理进行仓库请求的场景。
方案本身也是指令的一部分
APT 传输手册列出了用于远程 DNS 解析的 SOCKS5 的 socks5h。请为已安装版本使用文档中给出的方案,不要把它缩短成另一个程序碰巧接受的标签。
同样,旧论坛片段中的 Acquire::socks::Proxy 并不能证明 HTTP 获取方法会读取该设置。配置解析器可能接受某个键,但下载方法并不使用它。
本地地址有边界
当 APT 在容器或虚拟机内运行时,127.0.0.1 指的是该环境。主机上的 SOCKS 监听器是另一个端点。在诊断被拒绝的本地连接之前,先确认 APT 在哪里执行。
SOCKS 支持也不会取消仓库签名或 HTTPS 证书检查。请保持这些保护开启。如果已安装的 APT 不具备文档所述能力,请选择经批准的替代方案或升级路径,而不要把无法识别的 URI 方案当成密码问题。