保留传出数据包的源端口

保留传出数据包的源端口

我有 2 个接口 eth0(192.168.0.1) 和 eth1(10.1.1.15)。我以这种方式对所有数据包进行 nat。

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

现在我想保留 NAT 数据包的源端口,如下所示:

192.168.0.1:8080->nat->10.1.1.15:8080

可以使用 iptables 来做到这一点吗?

答案1

默认情况下,MASQUERADE(类似 SNAT)会尝试保留建立连接的机器的原始端口。但是,当然,如果两台主机使用同一个端口,那么它必须为第二台主机选择另一个端口。

您还可以使用以下命令明确设置每个协议的端口范围:

/sbin/iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports <i>[-<n>]

相关内容