使用 iptable 进行 DNAT 时如何避免端口重复

使用 iptable 进行 DNAT 时如何避免端口重复

我通过以下命令配置iptable输出链DNAT转换。

iptables -t nat -A OUTPUT -p tcp --dport 5000 -j DNAT --to 10.100.1.10:2048

当我在客户端10.100.30.5上链接10.100.20.4:5000时,流量成功转发到10.100.1.10:2048。

并且我在服务器10.100.1.10上收到的客户端连接地址是10.100.30.5:27929。

现在我想在客户端通过conntrack命令获取通过10.100.30.5:27929的DNAT记录。命令是

# conntrack -L -s 10.100.30.5 -r 10.100.1.10 -u ASSURED
tcp      6 431995 ESTABLISHED src=10.100.30.5 dst=10.100.20.4 sport=27929 dport=5000 src=10.100.1.10 dst=10.100.30.5 sport=2048 dport=27929 [ASSURED] mark=0 secmark=0 use=2
tcp      6 431987 ESTABLISHED src=10.100.30.5 dst=10.100.20.5 sport=59717 dport=5000 src=10.100.1.10 dst=10.100.30.5 sport=2048 dport=27929 [ASSURED] mark=0 secmark=0 use=2

这里的回包记录里有两条使用27929端口的记录,但是我只想获取一条记录。

我应该怎么做才能避免端口重复。

相关内容