![如何在 wifi 路由器或数据包路由中设置代理](https://linux22.com/image/1498226/%E5%A6%82%E4%BD%95%E5%9C%A8%20wifi%20%E8%B7%AF%E7%94%B1%E5%99%A8%E6%88%96%E6%95%B0%E6%8D%AE%E5%8C%85%E8%B7%AF%E7%94%B1%E4%B8%AD%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86.png)
场景是 Ubuntu14.04 服务器中有 2 个网卡,一个是 D-Link 路由器,另一个是 ISP 的直通线路。现在我想要服务器上路由器的所有请求。路由器处于桥接模式以避免 Nat。当我在路由器连接的设备中设置代理时,我收到了所有请求,但我不想在客户端设备中设置代理,所以我设置了 Iptables 命令。但我收到了不支持的请求!那么 Iptables DNAT 中的网络连接是否存在问题?
答案1
如果你想建立一个透明代理,您需要一个支持它的代理服务器软件。这是因为“捕获”连接与浏览器通常与(常规)代理通信的方式不同。
首先,安装您的代理(在本例中为 Squid),并验证它可以作为常规代理工作。
然后,将其设置为接受捕获的连接:
http_port 3128 transparent
此后,您所需要的只是一个防火墙规则来实际捕获连接:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
如果代理位于另一台主机上,则此配置不起作用。在这种情况下,您可以使用 DNAT。
请注意,除非透明代理执行 MITM 攻击,否则它无法与 HTTPS 配合使用。否则它不知道连接应该去哪里。除非您知道自己在做什么,否则 SSL 拦截不是一个好主意。