我如何强制Squid Proxy使用特定的网关访问互联网?

我终于能够使用squid将我的Ubuntu 10.04服务器设置为透明代理。 它和我想要的完全一样,但是我有一个严重的问题

在两个以太网卡上,我有机会上网(两个不同的isps),但我希望这台服务器只使用eth1来提供所有的networking请求。

因此,最终的scheme将使用eth0来收集所有传入的代理请求,让鱿鱼使用eth1上的超高速连接从互联网收集信息。

问题是,我有一个防火墙连接到eth0:这个防火墙允许分支机构使用wifi桥代理。

为了确保分支机构和代理之间的通信,我不得不在eth0上设置默认网关,我的防火墙很遗憾也提供了互联网连接(但速度很慢)。 Squid完全使用eth0来收集请求并从互联网上获取数据。

我不能设置一个独特的正确的默认网关,因为在这种情况下,我不会使用无线网桥将数据包发送回我们的分支机构。

我希望我已经更清楚了一点,我为自己可怜的博览会感到抱歉。

我的实际路线显示:

Kernel IP routing table` Destination Gateway Genmask Flags Metric Ref Use Iface 193.206.xx * 255.255.255.0 U 0 0 0 eth1 128.0.xx * 255.255.0.0 U 0 0 0 eth0 default 128.0.xx 0.0.0.0 UG 100 0 0 eth0 default 193.206.xx 0.0.0.0 UG 100 0 0 eth1 

任何提示?

如果您需要任何forms的细节,我会发布。

原版的

从命令提示符处:

 sudo route add default gw ipadd.ress eth1 

然后,在/etc/network/interfaces中添加以下行:

 up route add default gw ipadd.ress eth1 

当然,用两个线路中的网关IPreplaceipadd.ress

编辑新的问题

如果您需要删除路线,只需将“添加”更改为“del”。 例:

 (command) sudo route del default gw 128.0.xx eth0 (/etc/network/interfaces) up route del default gw 128.0.xx eth0 

您也可以通过route命令为分支机构设置静态路由

 route add -net (network_id/prefix) GW (gateway) (interface) 

你有两个问题:首先,你需要使鱿鱼使用正确的源IP地址。 其次,您需要确保将具有该源IP地址的数据包导向到正确的网关(源路由)。

第一个问题是一个鱿鱼问题。 您可以使用Squid的tcp_outgoing_address将源IP地址设置为正确的IP地址。

tcp_outgoing_address 128.0.xx

第二个问题是系统configuration问题。 您不想将包含128.0.xx源地址的数据包发送到193.206.xx网关,反之亦然。 这被称为source routing并与iptables完成。

更复杂的方法是有两个路由表。 一个用于128.0.xx源地址的数据包,并且有一个到128.0.xx网关的默认路由。 反之亦然。 http://wlug.org.nz/SourceBasedRouting