1

我想使用 iptables 来设置 DNAT 目标。多端口虚拟服务器是我想做的目的。但我发现 DNAT 无法将多端口映射到目标多端口。例如

iptables -t nat -A PREROUTING -p tcp --dport 1000:2000 -j DNAT --to-destination 192.168.1.100:3000-4000

我认为这个规则应该是 1000 ------> 3000 1001 ------> 3001 ...................... . 2000 ------> 4000

我尝试使用 whireshark 来捕获数据包。无论原始数据包是 1000、1001、2000 等等,它们似乎都只翻译到端口 3000。这将 iptables 连接起来,仅将许多端口映射到一个端口。

有什么建议吗?

谢谢。

4

1 回答 1

1

iptables-extensions的手册页指出内核2.6.11-rc1和更高版本不支持指定多个目标端口:

在最高2.6.10的内核中,您可以添加多个--to-destination选项。对于这些内核,如果您通过地址范围或多个选项指定多个目标地址,--to-destination则会在这些地址之间进行简单的循环(循环中一个接一个)负载平衡。后来的内核 (>= 2.6.11-rc1 ) 不再具有 NAT 到多个范围的能力。

于 2016-04-05T13:16:08.177 回答