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
只是我编造的地址(这帮助我解决了另一个路由问题),我将其更改为不同网络上的地址并且一切正常。
我无法设置正确的 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
只是我编造的地址(这帮助我解决了另一个路由问题),我将其更改为不同网络上的地址并且一切正常。