![WFH 时使用 iptables 暂时忽略/绕过代理设置](https://linux22.com/image/8752/WFH%20%E6%97%B6%E4%BD%BF%E7%94%A8%20iptables%20%E6%9A%82%E6%97%B6%E5%BF%BD%E7%95%A5%2F%E7%BB%95%E8%BF%87%E4%BB%A3%E7%90%86%E8%AE%BE%E7%BD%AE.png)
我的工作中有 HTTP 和 HTTPS 代理。虽然当我在家工作(在工作的笔记本电脑上)时,我想禁用代理设置(直接连接到互联网)。然后,当我回来工作时,恢复代理设置。
问题是,只有少数应用程序能够识别系统范围的代理设置(使用 Linux Mint 的网络管理器以及环境变量进行设置HTTPS_PROXY
)HTTP_PROXY
。对于许多其他应用程序(IntelliJ、SBT、Maven、Synaptic、apt-get、git),我必须手动设置它们,并且每次都编辑它们的设置非常乏味。
我可能可以编写一个脚本或其他东西来编辑所有这些应用程序的设置文件,但我认为它很容易出错(我可能会损坏文件),而且并不是最简单的解决方案。我想到的是拦截发送到代理的传出数据包,以某种方式重新打包它们并将它们直接发送到互联网。是否可以使用 iptables 规则或类似的规则来做到这一点?在网络、代理等方面,我并不是真正的专家,所以我什至不确定它是否可行,更不用说自己构建规则了。将不胜感激您的帮助!
答案1
您可以在笔记本电脑上安装代理并配置所有应用程序以使用它(在本地主机上)。然后,您可以更改本地代理的配置以使用或不使用父代理,具体取决于您的位置。
Tinyproxy 可能是这项任务的理想选择。以下是 Debian 软件包中的描述:
Package: tinyproxy
Version: 1.8.3-3+b1
Installed-Size: 145
Description-en: A lightweight, non-caching, optionally anonymizing HTTP proxy
An anonymizing HTTP proxy which is very light on system resources,
ideal for smaller networks and similar situations where other proxies
(such as Squid) may be overkill and/or a security risk. Tinyproxy can
also be configured to anonymize HTTP requests (allowing for exceptions
on a per-header basis).