如何在Ubuntu上设置系统范围的代理?

7
我处于一个奇怪的位置,apt-get update可以正常工作并连接到互联网,但在Docker容器中没有其他任何功能可用。我不确定是我将代理放错了位置,还是缺少其他内容。对于apt-get,我将以下内容添加到/etc/apt/apt.conf中,它可以正常工作。
Acquire::http::proxy  "http://user:pass@172.18.*.*:80/";
Acquire::ftp::proxy "ftp://user:pass@172.18.*.*:80/";
Acquire::https::proxy "https://user:pass@172.18.*.*:80/";

虽然我已经将凭证放置在/etc/profile中并且我认为它们的格式是正确的,但我无法运行像curlping这样的命令。是否有我遗漏的东西?

你可能需要设置一个系统范围的代理,不仅仅是针对 apt - Auzias
3个回答

12

输入 env | grep proxy,如果没有输出,则可能帮助您导出代理:

export https_proxy=https://user:pass@172.18.*.*:80
export http_proxy=http://user:pass@172.18.*.*:80
export ftp_proxy=ftp://user:pass@172.18.*.*:80

是的,但如果我理解正确,它只适用于当前终端会话。 - Line
1
@Line 是的,你说得对。如果你想让这个在所有终端会话中都生效,你需要把这些命令放到你的.bashrc文件中。 - Irshad Bhat

5
如果您的用户默认shell是bash或其他Bourne兼容的shell,则交互式登录shell将从全局的/etc/profile和/etc/profile.d/*.sh以及/etc/bash.bashrc文件中读取。交互式非登录shell也会从全局的/etc/bash.bashrc文件中读取。
创建一个/etc/profile.d/proxy.sh文件,并设置http_proxy、https_proxy和ftp_proxy环境变量,这样下次登录时大多数程序都可以使用这些值。
以下是一个示例proxy.sh文件,其中http、https和ftp代理相同:
export http_proxy=http://my.local.proxy:port
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy

一些登录方法可能会跳过这些文件,所以如果不起作用,您可以尝试将它们放在 /etc/bash.bashrc 中,这样您每次打开的新交互式 shell 都会设置这些值。


在我的情况下(Ubuntu 19.04),home/user_name/.bashrc 也可以。 - Line

3
这很简单。我已经为此创建了一个Python 3脚本。 proxy_configuration下载并运行它。您可以快速设置和删除系统范围的代理。
步骤: 1)下载zip并解压缩。 2)打开终端并导航到您提取文件的文件夹。 3)输入以下命令 chmod +x proxy.py sudo ./proxy.py
干杯!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接