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

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

我希望有人能帮助我——我为此一直苦恼不已!

我已经设置了 pptpd 和 squid。我想让这些用户访问互联网,但想通过 squid 代理发送 http 流量。

希望这个粗略的图表能让您了解我想要实现的目标:

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

我还可以直接连接到 squid,并且它可以按预期工作。

现在,我希望另一条简单的规则能够通过 squid 重定向所有 http 流量:

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

但这似乎不起作用(我也希望 ppp+ 是通配符的正确格式)。Http 流量永远不会被重定向并绕过代理。

有人能建议如何让它工作吗?

恐怕我对这些东西真的不太了解。我也希望得到一些关于如何调试系统的建议,例如查看哪些日志文件、tcpdump 命令等。我发现 iptables 文档非常令人困惑!

谢谢!

答案1

您的规则是正确的,您需要检查它是否确实匹配。

iptables -t nat -vnL

相关内容