IPTABLES:通过透明的Squid路由VPN用户

我希望有人可以帮助我 – 我一直在撕掉我的头发!

我有pptpd和鱿鱼设置。 我想让这些用户访问互联网,但想通过鱿鱼代理发送httpstream量。

希望这个粗略的图表能给你一个我想要实现的想法:

VPN users connect to pptpd (via eth0) \ | / | | / \ http everything else | | | | | | squid | | | \ / \ / | NAT | internet (via eth0) 

如果我设置了以下iptables规则,用户可以连接到互联网:

 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

我也可以直接连接到鱿鱼,它按预期工作。

现在,我希望另一个简单的规则将通过鱿鱼redirect所有的httpstream量:

 iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 80 -j REDIRECT --to-port 3128 

但是这似乎并不奏效(我也希望ppp +是通配符的正确格式)。 Httpstream量永远不会redirect并绕过代理。

任何人都可以build议如何得到这个工作?

我对这个东西恐怕不是很了解。 我也喜欢一些关于如何debugging系统的build议,比如要查看哪些日志文件,tcpdump命令等。我发现iptables文档非常令人迷惑!

谢谢!

你的规则是正确的,你需要检查它是否真的被匹配。

 iptables -t nat -vnL