在ubuntu服务器中设置代理后,Apt-get无法正常工作

时间:2014-02-11 10:08:03

标签: linux ubuntu

您好我正在使用ubuntu服务器。 我已使用以下方式设置代理:

echo "export http_proxy='http://username:password@proxyIP:port/'" | tee -a ~/.bashrc

我已经设置了http,https和ftp代理。 Wget工作正常但apt-get无法连接。 请帮忙!

4 个答案:

答案 0 :(得分:1)

我不知道apt-get但我从来没有 yum 来处理环境变量。相反,我必须通过其config设置代理。

以下是 apt-get conf的相关帖子:
https://askubuntu.com/questions/89437/how-to-install-packages-with-apt-get-on-a-system-connected-via-proxy

另外......默认情况下,普通文本密码位于一个公共可读的文件中真棒! (或者环境变量和bash历史记录)

答案 1 :(得分:0)

您需要更新.bashrc和apt.conf才能使其正常工作。

以下链接将详细解释这一点。 http://codewithgeeks.blogspot.in/2013/11/configure-apt-get-to-work-from-behind.html

答案 2 :(得分:0)

apt-get设置为忽略系统默认代理设置。

要设置代理,您必须转至/etc/apt/apt.conf文件并添加以下行:

Acquire::http::proxy "http://username:password@proxyIP:port/";
Acquire::ftp::proxy "ftp://username:password@proxyIP:port/";
Acquire::https::proxy "https://username:password@proxyIP:port/";

您也可以创建一个脚本来设置它,并在需要时取消设置。

创建脚本aptProxyOn.sh

if [ $(id -u) -ne 0 ]; then
  echo "This script must be run as root";
  exit 1;
fi

if [ $# -eq 2 ]
  then

  printf \
  "Acquire::http::proxy \"http://$1:$2/\";\n\
   Acquire::ftp::proxy \"ftp://$1:$2/\";\n\
   Acquire::https::proxy \"https://$1:$2/\";\n" > /etc/apt/apt.conf.d/01proxies;
  sudo cp /etc/apt/apt.conf.d/01proxies /etc/apt/apt.conf

  else

  printf "Usage $0 <proxy_ip> <proxy_port>\n";

fi

要删除代理,请创建名为aptProxyOff.sh

的脚本
if [ $(id -u) -ne 0 ]; then
  echo "This script must be run as root";
  exit 1;
fi


printf "" > /etc/apt/apt.conf.d/01proxies;
sudo cp /etc/apt/apt.conf.d/01proxies /etc/apt/apt.conf

授予两个文件运行权限。 chmod +x aptProxyOn.sh aptProxyOff.sh

您必须按以下方式运行它们。

代理开启 -

sudo ./aptProxyOn.sh username:password@proxyIP port

代理关闭 -

sudo ./aptProxyOff.sh

提示
如果您的用户名或密码中包含 @ ,则无法直接使用。 您必须使用 @ 的URL编码,即%40 。但是,在传递命令行参数时,您无法使用%40 ,您必须使用 %% 40

答案 3 :(得分:0)

这最适合我:

切换到 / etc / apt目录

编辑以下文件,如果该文件不存在,则此命令将创建一个文件

gedit /apt.conf.d/apt.conf

并添加以下行

获取:: http ::代理“ http://[proxy-server]:[port]”;

获取:: https ::代理“ https://[proxy-server]:[port]”;