我需要找到一种方法来通过代理服务器代理到 example.com 的所有连接,它需要在命令行上工作,以及在 Python 中自动工作(就像导出 http_proxy 一样),但我希望所有其他流量都像平常一样通过网络。
答案1
使用 proxy.pac 应该可以解决问题。
export http_proxy=http://local.example.org/proxy.pac
使用类似指令
function FindProxyForURL(url, host) {
if (shExpMatch(host, "example\.com")) { return "PROXY a.b.c.d:8080"; }
return "DIRECT";
}
答案2
私有网络将为您执行此任务。
您可以像平常一样启用 HTTP_PROXY ENV
导出 http_proxy='http://本地主机:8118‘
Privoxy 将处理 ACL 和重定向。查看转发配置部分。
答案3
要使它适用于所有程序,您需要使用透明代理,并设置防火墙规则或 DNS 配置以将您的流量发送到代理。我设置了一个透明 Squid 代理使用 Shorewall 建立防火墙规则。它还在标准端口上运行更可靠的标准代理。
要使用 DNS,您需要限制对上游服务器的访问。这将需要防火墙规则。但是,可以使用文件中的条目为单个系统完成此操作hosts
。
您的代理需要配置为根据需要转发流量。对于您而言,它应该代理example.com
到指定地址,并正常传递其余流量。
除非您确定 IP 地址是example.com
固定且稳定的,否则您应该代理所有流量。大型网站通常使用特殊的 DNS 处理来为特定用户提供最快的可用服务器的 IP 地址。这些 IP 地址往往会随着时间的推移而变化,有时变化相当频繁。