APT 有自己的代理选项。更改浏览器设置不能确定 apt-get 使用哪条路径,更换仓库镜像也不等于选择代理。

对单条命令,显式传入设置:

sudo apt-get \
  -o Acquire::http::Proxy=http://203.0.113.10:8080/ \
  -o Acquire::https::Proxy=http://203.0.113.10:8080/ \
  update

用来自服务或HTTP 代理列表的所选 HTTP 端点替换文档示例 IP。只要普通 HTTP 代理支持所需的 HTTPS 隧道,两个值都可以指向它。选项名称描述的是正在配置的仓库传输方式。

需要长期保留的连接

APT 可以在 /etc/apt/apt.conf.d/ 下的专用文件中保存同样的值:

Acquire::http::Proxy "http://203.0.113.10:8080/";
Acquire::https::Proxy "http://203.0.113.10:8080/";

保留语法中的引号和分号。使用单独且命名明确的文件,便于以后移除自己的覆盖设置,而无需重写仓库定义或无关 APT 选项。

要查看某个选定值而不启动软件包操作,可使用:

apt-config shell PROXY Acquire::http::Proxy

APT 也支持 http_proxy 环境配置,但通过 sudo 可用的环境可能与设置它的终端不同。显式 APT 选项更便于理解单条命令的对比。

仓库可能有意直连

针对特定主机的代理选项可使用特殊值 DIRECT。如果只有一个仓库忽略通用代理,应先检查这些主机覆盖设置,再更换端点。

HTTPS 证书验证仍是独立检查。需要获准的检查 CA 时,应配置适当信任;不要为了让下载继续而关闭对端或主机名验证。软件包签名的用途也不同于 TLS 和代理路由。

不要只看命令最终退出结果

检查哪些仓库请求实际成功,以及 APT 是否报告获取警告或复用旧列表。部分更新并不能证明每个源都通过该路径成功获取。

撤销长期测试时,只移除自己添加的代理条目。然后检查剩余的环境或主机专用设置,它们仍可能选择另一个代理。

相关文章