透明代理和IPTABLES

我使用PRIVOXY作为Fedora Core 11盒子上的透明代理。 机器有一个接口(eth0),这里是networking的configuration:

10.0.1.1 – router.foobar.com(连接到ISP)10.0.1.2 – proxy.foobar.com(代理)10.0.1.199 – DHCP服务器

我已经在DHCP中设置默认网关选项为10.0.1.2,所以所有stream向0.0.0.0/0的stream量都应该通过它(和10.0.1.1)通过互联网。

这是我的问题….如何确保进出networking的stream量遵循正确的path,不会产生奇怪的路由问题。 在使用代理服务器时,我看到了一些延迟,但是当我通过更改默认网关向networking发送“直接镜头”时,我看不到任何延迟。

这是我目前的iptables conf文件:

# Generated by iptables-save v1.4.3.1 on Fri Jul 30 17:02:45 2010 *nat :PREROUTING ACCEPT [1565:151406] :POSTROUTING ACCEPT [1467:94514] :OUTPUT ACCEPT [768:48101] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 COMMIT # Completed on Fri Jul 30 17:02:45 2010 # Generated by iptables-save v1.4.3.1 on Fri Jul 30 17:02:45 2010 *filter :INPUT ACCEPT [12764:10577001] :FORWARD ACCEPT [3755:525228] :OUTPUT ACCEPT [14364:12738086] -A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j ACCEPT COMMIT 

我知道我错过了一些东西,我只是不知道是什么…我认为我需要做一些事情:

 -A POSTROUTING -i eth0 -o eth0 -d 10.0.1.0/24 --SNAT 10.0.1.1 

10.0.0.2上的默认网关必须是10.0.0.1, /proc/sys/net/ipv4/ip_forward必须是1而不是0。

还要记住,privoxy是一个代理,它可以添加一些延迟。