iptables - PREROUTING 后的 DNAT

iptables - DNAT after PREROUTING

我无法设置正确的 iptables 规则来更改转发包的目的地 预路由之后。我有一个规则,将所有传入的端口 80 流量重定向到我的本地端口 3128 :

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 3128

在端口 3128 上,我是 运行 透明代理,它对流量进行一些分析,然后将其发送到它的实际位置。

但是,我想对 10.0.0.25:80 的流量进行区别对待。我希望它通过端口 3128 上的代理, 但是 将目标更改为 my 机器上的端口 80(10.0.0.1:80 ).我尝试了以下方法,但它不起作用,因为客户端设备收到一条消息,指出在 10.0.0.25 找不到服务:

iptables -t nat -A OUTPUT -d 10.0.0.25 -j REDIRECT --to 80

感谢所有帮助。

我刚刚弄清楚出了什么问题:由于 10.0.0.25 与我的客户端设备是同一个网络,因此很自然没有设备会尝试通过网关访问它 (10.0.0.1) .他们宁愿试图直接到达它。由于 10.0.0.25 只是我编造的地址(这帮助我解决了另一个路由问题),我将其更改为不同网络上的地址并且一切正常。