如何在没有GUI的情况下配置代理?

如何使用终端在Ubuntu Server或Minimal(CLI)版本中配置代理设置?

CLI Ubuntu / Server中的系统范围代理必须设置为环境变量。

  • 使用vi (或您喜欢的编辑器)打开/etc/environment文件。 此文件存储引导时初始化的系统范围变量。
  • 添加以下行,进行适当修改。 您必须同时复制大写和小写,因为(不幸的是)某些程序只查找其中一个:

     HTTP_PROXY = “http://myproxy.server.com:8080/”
     https_proxy = “http://myproxy.server.com:8080/”
     ftp_proxy这= “http://myproxy.server.com:8080/”
     NO_PROXY = “本地主机,127.0.0.1将localAddress,.localdomain.com”
     HTTP_PROXY = “http://myproxy.server.com:8080/”
     HTTPS_PROXY = “http://myproxy.server.com:8080/”
     FTP_PROXY = “http://myproxy.server.com:8080/”
     NO_PROXY = “本地主机,127.0.0.1将localAddress,.localdomain.com”
    
  • apt-getaptitude等在正常使用sudo时不会服从环境变量。 所以单独配置它们; 在/etc/apt/apt.conf.d/创建一个名为95proxies/etc/apt/apt.conf.d/ ,并包含以下内容:

    获取:: http :: proxy“http://myproxy.server.com:8080/”;
    获取:: ftp :: proxy“ftp://myproxy.server.com:8080/”;
    获取:: https :: proxy“https://myproxy.server.com:8080/”;
    

最后,注销并重新启动以确保更改生效。


资料来源: 1,2 。 有关其他帮助,请参阅1,包括快速打开/关闭代理的脚本。

如果您有身份validation代理,则URL将不同。 代替:

 "http://myproxy.server.com:8080/" 

你有:

 "http://user_name:password@myproxy.server.com:8080/" 

请注意,这些仍然是URL,因此密码(可能还有用户名)必须进行URL编码 。

例如, muru的用户名和)qv3TB3LBm7EkP}的密码如下所示:

 "http://muru:)qv3TB3LBm7EkP%7D@myproxy.server.com:8080/" 

这可以通过各种方式完成:

  1. 有几个网站用于编码:
  2. 程序化:
    • Stack Overflow的bash脚本
    • 在Perl中,来自Stack Overflow

在紧要关头,您可以使用man url查看需要编码的字符:

 An escaped octet is encoded as a character triplet, consisting of the percent character "%" followed by the two hexadecimal digits representing the octet code... 

八位字节代码可以在man ascii