Ubuntu 网络代理配置

Linux 中并没有“全局代理”这一说法,理论上来讲每个应用都可以配置自己的网络协议栈,绕开所谓的“代理”。

不过以 Ubuntu 为例,要达到接近全局代理的效果大概需要设置以下几个地方:

  1. 环境变量:ALL_PROXY, HTTP_PROXY, HTTPS_PROXY, HTTPS_PROXY, NO_PROXY,以及这些变量对应的小写形式。大多数网络库都会识别这几个环境变量。
  2. apt: 配置代理后能访问国外源。
  3. dconf/gsettings: dbus 相关的代理,gnome GUI 中的代理设置就是修改这里。

如果发现应用在配置以上三项以后依然不走代理,可能此应用使用自己的网络栈配置,绕开代理。可以看看应用官方有没有提供代理方法。

环境变量

把下面这一段内容补充上代理对应的 URL 后,放入到 ~/.bashrc,即可为当前用户设置代理。

export ALL_PROXY=
export all_proxy=
export HTTP_PROXY=
export http_proxy=
export NO_PROXY=localhost,127.0.0.1,::1
export no_proxy=localhost,127.0.0.1,::1

如果希望为所有用户包括 root 设置代理,那就把内容写到 /etc/profile 中。

apt

如果只是暂时设置代理,一次性使用:

sudo apt -o Acquire::https::proxy="http://<proxy-url>:<port>/" update
sudo apt-get -o Acquire::http::proxy="http://<proxy-url>:<port>/" update

如果希望一直使用代理,可以将下面内容

Acquire::https::proxy "http://127.0.0.1:1080/";
Acquire::http::proxy "http://127.0.0.1:1080/";

写入文件 /etc/apt/apt.conf.d/12proxy

dconf/gsettings

这里主要会影响到 GUI 应用的代理配置,包括浏览器,桌面终端等。需要注意,这里设置的代理不会影响到 root。

可以直接通过图形界面来设置:

image

如果关闭了 GUI server 的话,一般不需要设置 dconf,通过更改 shell 的环境变量就能够让大部分 shell 应用走代理。

posted @ 2021-11-29 10:46  DDKK64  阅读(9378)  评论(0编辑  收藏  举报