使用iptables透明访问2个代理取决于域

我有一个设置,我有2个代理服务器。 一个是我希望用于默认所有连接的socks代理。 第二个代理是一个http代理,我希望用它来连接特定的主机(全部在同一个域中)

让我们假设:

  • Socks代理是hostA:9000
  • Http代理是hostB:8080
  • 应该通过http代理的域名是* .foobar.com

iptables可以configuration来做到这一点?

对于socks代理,您可以使用一个名为tun2socks的实用程序(即链接)。 它基本上build立一个隧道设备,您可以创build路由规则来隧道通过您的stream量。 我使用这个连接到我的networking在工作(因为Linux上的专有VPN软件是废话)。 它工作得很好,有一些怪癖(最值得注意的是,它只适用于TCP)。

对于http代理。 理论上这应该是可能的,但是我从来没有做过。 然而,nixcraft有一个howto ,他们的东西通常是相当不错的。