我正在设置一个代理服务器以允许TCP数据包的特定path。 当到达代理的PORT A时,TCP数据包需要被redirect到代理端口B.一旦到达端口B,它们需要被DNAT到目的IP,端口B.
我在代理服务器上使用iptables规则,并将虚拟机设置为path中的每个IP地址,并使用netcat发送和监视TCP数据包。
我已经尝试了很多东西,但数据包似乎停止在代理,端口B.什么是这样做? 我在用着
-A PREROUTING -p tcp --dport PORT_A -j REDIRECT --to-port PORT_B
将数据包从代理端口Aredirect到端口B,工作正常。 但是在这一步之后,我无法将数据包移动到目的IP,端口B.
我尝试在nat Output中捕获redirect的数据包,如下所示:
-A OUTPUT -p tcp --dport PORT_B -j DNAT --to DESTINATION_IP:PORT_B
我尝试了另一个预路由规则,假设redirect的数据包需要在规则链上有另一个复原(参见底部的图像)
-A PREROUTING -p tcp --dport PORT_B -j DNAT--to DESTINATION_IP:PORT_B
是的,我build立了我的转发链,让它通过,并启用IP转发。
任何帮助表示赞赏。 我是新来的iptables,这真是令我困惑。
PS我已经使用这个图像作为参考。