如果我想让 GNOME 应用程序(以及 Firefox 和 Chrome)通过代理访问网络,我只需要使用gnome-network-properties
(我必须说这是一个漂亮而简单的 GUI)。对于其他应用程序(例如 APT、Transmission、XChat),我必须使用它们的特定方法。
有没有办法避免这种情况,当我在需要代理(主机名:端口)的网络中时可以打开和关闭某些东西?
答案1
我认为几乎所有使用网络的 linux/unix 软件都会尊重http_proxy
和ftp_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:我编写并维护了该工具。