我需要配置代理。没有apt.conf
文件,/etc/apt/
所以我使用 创建了它nano
。
但我不明白我需要在那里写什么。我已经 在那里写了,然后重新启动。但当我尝试时- 它不起作用。http_proxy = http://lgn:[email protected]:8080/
networking
apt-get update
实际上,我不明白应该在apt.conf
文件中写什么端口和 IP(有一个带有192.168.1.254
IP 和8080
端口的示例,所以我决定使用它们)。
答案1
要使用代理,您需要一个代理服务器。IP 和端口必须来自此代理服务器。Login 和 pwd 必须是代理服务器上的用户名和密码(如果代理需要登录)。
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
文件。这样,您只需在一个地方管理代理设置。