如何在 Ubuntu 桌面上添加代理例外
问题:我的 Ubuntu 桌面计算机通过公司代理进行连接。我在 Ubuntu 桌面上配置了必要的代理设置,因此我的所有 HTTP/HTTPS 流量都通过公司代理。但是,我需要能够有选择地绕过某些网站的代理(例如,具有公司 IP 地址或私有 IP 地址的网站)。在 Ubuntu 桌面上的“网络代理”设置中,我找不到在哪里定义代理例外。如何在 Ubuntu 桌面上配置代理例外?
当您使用代理时,“代理例外列表”(也称为“忽略主机列表”)有时是必要的。代理例外列表基本上告诉应用程序或桌面(使用代理)不要对特定目的地或网站使用代理。当您尝试访问本地 LAN 上的 Web 服务器或具有无法从外部访问的私有 IP 地址的 Web 服务器时,需要代理例外。您需要直接连接到这些 Web 服务器,而不是通过代理。
某些应用程序(例如 Firefox)带有自己的应用内代理设置。在这种情况下,您可以使用应用程序特定的代理设置来定义代理例外。

如果您想依赖 Ubuntu 桌面的系统范围代理设置,可以按如下方式配置代理例外。请注意,如果您希望在无头服务器环境中设置代理异常,请参阅本教程。
从命令行添加代理例外
在基于 GNOME 的 Ubuntu 桌面上,您可以使用 gsettings
命令从命令行调整代理设置,其中包括代理例外。
键入以下命令,它将打印桌面的当前代理例外列表(或“忽略主机”列表)。
$ gsettings get org.gnome.system.proxy ignore-hosts
['localhost', '127.0.0.0/8', '::1']
默认代理例外列表包含三个本地主机名和地址。 127.0.0.0/8
是解析为环回的地址块,::1
是 IPv6 环回地址。
要更改代理例外,请使用 set
选项和 gsettings
命令,如下所示。
$ gsettings set org.gnome.system.proxy ignore-hosts "['localhost', '127.0.0.0/8', '192.168.1.0/24', 'linux教程', '::1']"
代理例外列表中允许的项目包括主机名(例如,www.cnn.com
)、带通配符的域(例如,*.linux教程
)、IPv4/IPv6 地址或 CIDR 块(例如,192.168.1.0/24
)。
现在验证代理例外列表是否已成功修改。
$ gsettings get org.gnome.system.proxy ignore-hosts
['localhost', '127.0.0.0/8', '192.168.1.0/24', 'linux教程', '::1']
由 gsettings
修改的桌面设置将在桌面重新启动后保留。
通过 GUI 添加代理例外
gsettings
命令行工具的图形对应工具是 dconf-editor
。
首先将其安装在桌面上。
$ sudo apt-get install dconf-editor
要配置代理例外,请启动 dconf-editor 并转到左侧栏上的“系统”->“代理”。
然后在右侧窗格中修改 ignore-hosts
字段。

与 gsettings
类似,使用 dconf-editor
所做的任何更改在系统重新启动后都将保持永久。