有没有办法在系统范围内设置网络代理?

有没有办法在系统范围内设置网络代理?

如果我想让 GNOME 应用程序(以及 Firefox 和 Chrome)通过代理访问网络,我只需要使用gnome-network-properties(我必须说这是一个漂亮而简单的 GUI)。对于其他应用程序(例如 APT、Transmission、XChat),我必须使用它们的特定方法。

有没有办法避免这种情况,当我在需要代理(主机名:端口)的网络中时可以打开和关闭某些东西?

答案1

我认为几乎所有使用网络的 linux/unix 软件都会尊重http_proxyftp_proxy环境变量。根据您的发行版的设置方式,/etc/environment将存在并默认由登录 shell 读取。

您可以添加一行内容

http_proxy=123.45.67.89:1011

/etc/environment容易,但是该文件中的更改只会在您下次启动 shell 进程时生效 - 并且仅有的在那个 shell 进程中。我不认为你修改当前 shell 以外的 shell 中的全局变量。

答案2

我同意使用代理服务器的最佳方法是使用环境变量http_proxy,正如其他答案所指出的那样。不幸的是,并非所有应用程序都遵循 http_proxy 环境变量,这就是我仍然使用的原因tsocks某些程序使用 LD_PRELOAD 强制网络连接通过 SOCKS 代理。

答案3

没有一劳永逸的解决方案。每个程序都使用自己的方式连接到代理服务器。

我的办公室也有类似的问题。我发现最好的方法是使用 VPN 连接。当您连接时,整个系统的网络流量都会经过VPN。如果您无权访问 VPN 服务器,您可以手动运行一个新服务器,并将其连接到您拥有的代理服务器。

如果您的应用程序不支持代理,您可以使用类似袜子化,包装其网络连接。

答案4

我用这个工具,这基本上是几个脚本,用于从单点配置不同应用程序的设置。

PS:我编写并维护了该工具。

相关内容