为 APT 配置代理?

为 APT 配置代理?

我需要配置代理。没有apt.conf文件,/etc/apt/所以我使用 创建了它nano

但我不明白我需要在那里写什么。我已经 在那里写了,然后重新启动。但当我尝试时- 它不起作用。http_proxy = http://lgn:[email protected]:8080/networkingapt-get update

实际上,我不明白应该在apt.conf文件中写什么端口和 IP(有一个带有192.168.1.254IP 和8080端口的示例,所以我决定使用它们)。

答案1

要使用代理,您需要一个代理服务器。IP 和端口必须来自此代理服务器。Login 和 pwd 必须是代理服务器上的用户名和密码(如果代理需要登录)。

help.ubuntu.com 网站

APT 配置文件方法

此方法使用位于 /etc/apt/ 目录中的 apt.conf 文件。如果您只希望 apt-get(而不是其他应用程序)永久使用 http 代理,则此方法非常有用。

在某些安装中,不会设置 apt-conf 文件。使用您选择的编辑器编辑 apt-conf 文件(如果还没有,请创建一个新的)。

sudo nano /etc/apt/apt.conf

将此行添加到您的 /etc/apt/apt.conf 文件中(用 yourproxyaddress 和 proxyport 替换您的详细信息)。

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

保存 apt.conf 文件。

如果您的代理需要登录名/密码,请替换:

"http://yourproxyaddress:proxyport";

和:

"http://username:password@yourproxyaddress:proxyport";

使用代理服务器的用户名和密码。

答案2

这是与 apt config 一起的更通用的答案。

由于有很多地方可以配置代理设置,一开始可能会感到困惑。让我总结一些内容并提出一些好的做法。

对于控制台程序

例如:wget以及git几乎每个连接到互联网的控制台应用程序。

如果你想在每次运行命令时配置代理,那么设置环境变量使用以下命令。

export http_proxy="http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/"
export ftp_proxy="http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/"

否则,如果您想对所有用户每次都使用相同的设置,那么:

在bashrc中配置

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

适用范围广泛~/.bashrc

配置/etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

使用 GUI 进行配置

打开网络设置并设置系统范围的网络代理。

网络 → 网络代理 → 配置 → 全系统应用。

但如果您对代理进行了身份验证,这可能没用。

对于 apt

您需要为 apt 做一些额外的工作,因为 apt 不关心代理环境变量。

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

对于超出此范围的所有内容,可能会有一个在应用程序本身中配置代理设置的选项。

答案3

类似下面的方法应该可以工作:

Acquire::http::proxy "http://lgn:[email protected]:8080/";
Acquire::https::proxy "http://lgn:[email protected]:8080/";

答案4

如果您需要在代理后使用 apt,那么其他所有东西可能也需要代理配置。我喜欢在一个地方管理我的代理设置,即环境变量。

为此,我创建了一个/etc/profiles.d/99-proxy.sh,其中包含必要的代理设置(如 larent 所述):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

这样,该机器上的所有用户都可以访问代理。(不要忘记chmod a+x

当您以用户身份使用 apt 或 apt-get 时,该用户可以使用 sudo。正如 Frank Qiu 所述,sudo 不会传递环境变量。为此,您可以添加

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

至(例如)

/etc/sudoers.d/00-environment 

或直接进入

/etc/sudoers

文件。这样,您只需在一个地方管理代理设置。

相关内容