我正在使用 ubuntu 服务器包(仅限终端),并且正在努力让代理服务器正常工作。
代理没有用户名/密码。
当我尝试执行此操作时,sudo apt-get update
出现多个错误,例如:
Failed to fetch blablabla... Cannot initiate the connection to proxy:8080 (proxy). - connect (101: network is unreachable)
我/etc/enviroment
有:
http_proxy="http://proxy:8080/";
https_proxy="https://proxy:8080/";
ftp_proxy="ftp://proxy:8080/";
当我这样做时$http_proxy
它返回http_proxy="http://proxy:8080/";
我已经将/etc/gai.conf
IPv4 设置为首选precedence ::ffff:0:0/96 100
我使用的是无线连接,但有以太网可用。但它无法识别以太网。设置要求使用代理,并且它接受了(不确定是否使用了代理)。
编辑:route -n
给出:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
答案1
我认为你可能需要专门为 apt 设置代理,请参阅这个 ubuntu 文档链接以下内容来源:
设置 apt-get 以使用 http 代理
这些是使用 apt-get 和 http-proxy 的三种方法。
临时代理会话
这是一个临时方法,每次您想通过 http 代理使用 apt-get 时都可以手动使用。如果您只想临时使用 http 代理,此方法很有用。
在使用 apt-get 之前在终端中输入此行(用您的详细信息替换您的代理地址和代理端口):>
export http_proxy=http://yourproxyaddress:proxyport
如果你通常使用 sudo 来运行 apt-get,那么你需要先以 root 身份登录才能正常工作,除非你还在 /etc/sudoers 中添加了一些明确的环境设置,例如
默认 env_keep = “http_proxy https_proxy ftp_proxy”
APT 配置文件方法
此方法使用位于 /etc/apt/ 目录中的 apt.conf 文件。如果您只希望 apt-get(而不是其他应用程序)永久使用 http 代理,则此方法非常有用。
在某些安装中,不会设置 apt-conf 文件。此过程将编辑现有的 apt-conf 文件或创建新的 apt-conf 文件。
将此行添加到您的 /etc/apt/apt.conf 文件中(用您的详细信息替换您的代理地址和代理端口)。
Acquire::http::Proxy "http://yourproxyaddress:proxyport";
保存 apt.conf 文件。
BASH rc 方法
此方法将两行添加到 $HOME 目录中的 .bashrc 文件。如果您希望 apt-get 和其他应用程序(例如 wget)使用 http 代理,此方法非常有用。
将这些行添加到 ~/.bashrc 文件的底部(用您的详细信息替换您的代理地址和代理端口)
http_proxy=http://yourproxyaddress:proxyport export http_proxy
保存文件。关闭终端窗口,然后打开另一个终端窗口或获取 ~/.bashrc 文件:
source ~/.bashrc 使用 sudo apt-get update 和任何你想要的网络工具测试你的代理。你可以使用 firestarter 或 conky 来查看活动连接。
如果您犯了错误并返回再次编辑文件,您可以关闭终端并重新打开它,或者您可以像上面所示那样 source ~/.bashrc。
source ~/.bashrc
然后注销并重新登录并尝试
apt-get update
答案2
我只需要用 Squid 进行设置即可。
设置好 squid 后,我输入“export http_proxy=0.0.0.0:3128 && export https_proxy=0.0.0.0:3128”,其中 0.0.0.0 是代理服务器的 IP 地址,3128 是端口号(squid 的默认端口号)。
从命令行查看它是否有效。然后你可以将其添加到你的 ~/.bashrc,除非你想让所有用户都可以使用代理。