问题描述
如何在使用终端的Ubuntu服务器或最小(CLI)版本中配置代理设置?
最佳解决思路
必须将CLI中的System-wide代理设置为环境变量。
-
用
vi
(或您最喜欢的编辑器)打开/etc/environment
文件。该文件存储启动时初始化的system-wide变量。 -
添加以下行,并进行适当修改。您必须同时复制upper-case和lower-case,因为(不幸的是)某些程序仅查找其中一个程序:http_proxy =“http://myproxy.server.com:8080/”https_proxy =“http://myproxy.server.com :8080 /“ftp_proxy =”http://myproxy.server.com:8080/“no_proxy =”localhost,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 =”localhost,127.0.0.1,localaddress,.localdomain.com“
-
apt-get
,aptitude
等在与sudo
正常使用时不会服从环境变量。所以分开配置它们;在/etc/apt/apt.conf.d/
中创建一个名为95proxies
的文件,并包含以下内容:Acquire :: http :: proxy“http://myproxy.server.com:8080/”;获取:: ftp :: proxy “ftp://myproxy.server.com:8080/”; Acquire :: https :: proxy“https://myproxy.server.com:8080/”;
最后,注销并重启以确保更改生效。
来源:1,2。特别参见1,以获取更多帮助,包括快速打开/关闭代理的脚本。
次佳解决思路
如果你有一个验证代理,那么URL将会不同。代替:
"http://myproxy.server.com:8080/"
您将拥有:
"http://user_name:password@myproxy.server.com:8080/"
请注意,这些仍然是URL,因此密码(可能是用户名)必须是URL encoded。
例如,muru
的用户名和)qv3TB3LBm7EkP}
的密码如下所示:
"http://muru:)qv3TB3LBm7EkP%7D@myproxy.server.com:8080/"
这可以通过各种方式完成:
-
有几个编码网站:
-
程序化:
-
来自Stack Overflow的
bash
脚本
-
在捏,你可以使用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
上提供八位字节代码。