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

Asa*_*sad 87 proxy

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

ish*_*ish 114

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

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

    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.正常使用时不会遵守环境变量。所以分别配置它们;创建一个名为95proxiesin的文件/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/";
    

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


资料来源:12。请特别参阅 1 以获取其他帮助,包括快速打开/关闭代理的脚本。

  • @BBK 即使在使用 https 时,您可能仍然需要通过 http 连接到代理,这基本上使代理服务器能够窃听您可能安全的连接。 (2认同)

mur*_*uru 10

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

"http://myproxy.server.com:8080/"
Run Code Online (Sandbox Code Playgroud)

你将拥有:

"http://user_name:password@myproxy.server.com:8080/"
Run Code Online (Sandbox Code Playgroud)

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

例如,用户名muru和密码)qv3TB3LBm7EkP}看起来像:

"http://muru:)qv3TB3LBm7EkP%7D@myproxy.server.com:8080/"
Run Code Online (Sandbox Code Playgroud)

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

  1. 有几个用于编码的网站:
  2. 程序化:

在紧要关头,您可以使用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...
Run Code Online (Sandbox Code Playgroud)

八位字节代码可在man ascii.