iptables – redirectbuild立的连接

我需要将已build立的TCP连接从一个端口重新路由到另一个端口。 端口8080上的连接需要重新路由到8180。

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 8180 

重新路由新的连接。 但是build立的连接停留在8080端口上。它可以在飞行中重新路由吗? 如果没有,我该如何切断连接以强制redirect端口重新连接?

同样,当删除redirect时,连接是否可以强制回到原始端口(8080)?

不,他们不会因为已build立的连接而被重新路由。 iptables中的NAT表使用conntrack跟踪已build立的连接,因此不需要再次进行NAT。 实际上,连接跟踪是使Linux netfilter成为“有状态”防火墙的原因。 它存储所有连接(源IP,目标IP,协议,端口号,连接状态等)。

要强制build立的连接重新连接到不同的端口,您可以简单地拒绝DROP注定到旧端口的stream量。

如本页 iptables文档中所述,连接跟踪是NAT的基础。