Linux 了解netfilter重定向目标

Linux 了解netfilter重定向目标,linux,networking,iptables,nat,netfilter,Linux,Networking,Iptables,Nat,Netfilter,只是在玩netfilter重定向目标。 我想知道目的港是如何改变的 使用“--to-ports”(复数)时 第一场比赛/命中2800->2900? 第二场比赛/命中2800->2901? 第三场比赛/命中2800->2902 在我的测试中,唯一使用的端口是第一个:2900。 在本例中,range参数“-to ports”让我感到困惑。 原始端口是否影响范围内正在使用的端口? 指定范围时使用“-to port”时使用哪个端口? “--to port”也可以,但手册页中没有提到 谢谢。netfilt

只是在玩netfilter重定向目标。 我想知道目的港是如何改变的 使用“--to-ports”(复数)时

第一场比赛/命中2800->2900?
第二场比赛/命中2800->2901?
第三场比赛/命中2800->2902

在我的测试中,唯一使用的端口是第一个:2900。 在本例中,range参数“-to ports”让我感到困惑。 原始端口是否影响范围内正在使用的端口? 指定范围时使用“-to port”时使用哪个端口? “--to port”也可以,但手册页中没有提到


谢谢。

netfilter
是无状态的,它无法跟踪端口状态,因此无法实现循环

此参数旨在解决端口冲突问题,例如检查此规则:

iptables -t nat -A PREROUTING -p tcp --dport 1000:2000 -j REDIRECT --to-ports 2900
如果客户端想要建立2个连接

client:3000 <---> server:1000
client:3000 <---> server:1001
客户端:3000服务器:1000
客户端:3000服务器:1001
这是可能的,因为客户端可以重用其端口。如果服务器将两个连接重定向到端口2900,这将导致问题,两个连接将变得相同


因此,服务器需要多个冗余端口来避免此问题。但如果客户端不重用其端口,则不会发生这种情况。

netfilter
是无状态的,它无法跟踪端口状态,因此无法实现循环

此参数旨在解决端口冲突问题,例如检查此规则:

iptables -t nat -A PREROUTING -p tcp --dport 1000:2000 -j REDIRECT --to-ports 2900
如果客户端想要建立2个连接

client:3000 <---> server:1000
client:3000 <---> server:1001
客户端:3000服务器:1000
客户端:3000服务器:1001
这是可能的,因为客户端可以重用其端口。如果服务器将两个连接重定向到端口2900,这将导致问题,两个连接将变得相同

因此,服务器需要多个冗余端口来避免此问题。但是如果客户端不重用它的端口,这种情况就不会发生