我使用多台 Ubuntu 16.04 服务器,这些服务器从 Ubuntu 存储库的内部镜像和外部存储库(安全、反向移植)下载软件包。没有与外部存储库的直接连接。所有互联网连接都通过代理服务器。
由于内部/外部存储库混合,我需要为每个域设置代理设置:
Acquire::http::Proxy::security.ubuntu.com "http://127.0.0.1:8080";
Acquire::http::Proxy::us.archive.ubuntu.com "http://127.0.0.1:8080";
有没有办法使用通配符来指定 ubuntu.com 域名?例如
Acquire::http::Proxy::*.ubuntu.com "http://127.0.0.1:8080";
我尝试了几种语法,但没有让它起作用。
答案1
我建议使用privoxy
...另一个代理!在 apt 和您的实际代理之间。
然后/etc/apt/apt.conf
您可以将所有流量传递到privoxy
:
Acquire::http::Proxy "http://localhost:8118";
Acquire::https::Proxy "http://localhost:8118";
然后在privoxy
配置中/etc/privoxy/config
决定如何管理和转发流量。
喜欢:
forward 192.168.1.* .
forward us.archive.ubuntu.com .
forward *.ubuntu.com http://127.0.0.1:8080
forward security.ubuntu.com http://127.0.0.1:8080
在此示例中us
,192.168.1.*
将直接进行,*.ubuntu
并将security
通过您的代理。
答案2
也许以下内容可以通过设置默认代理来帮助您,其余部分则自行解决。
https://github.com/hastmu/apt-proxy-detect
因为它使用给定 url 的工作代理,如果它们都不起作用,则直接连接。
享受。