Iptables将端口范围转发到不同主机上的另一个端口范围

时间:2014-05-14 10:33:17

标签: iptables nat

我想将端口范围(30000到40000)上的请求请求重定向到不同端口范围(10000-20000)上的不同主机,将它们映射为1到1.(30000到10000,40000到20000等) 如果端口范围相同,即:

iptables -t nat -I PREROUTING -p tcp -m tcp --dport 10000:20000 -j DNAT --to [local_ip]:10000-20000

完美无缺。但是,如果初始端口范围与辅助主机上的端口范围不同:

iptables -t nat -I PREROUTING -p tcp -m tcp --dport 30000:40000 -j DNAT --to [local_ip]:10000-20000

然后,不是将每个端口映射到它的相应端口,而是将端口30000-40000上的所有接入连接映射到辅助主机上的相同(随机我认为)端口(此时它们都将进入13675)。

我还尝试使用

进行端口重定向
-j REDIRECT

我也无法做到这一点。

如何在第一个示例中保持相同的行为以使用不同的端口范围?

2 个答案:

答案 0 :(得分:2)

经过大量的搜索和询问后,显然iptables无法处理,即使使用伪接口也不行。

答案 1 :(得分:1)

我尝试使用xinit.d接受所需端口范围上的传入连接,并让它自动为每个主动使用的隧道实例化netcat(nc)。

也许这个链接可能会有所帮助,它类似: https://blog.linuxnet.ch/automatic-tunnels-with-xinetd-and-netcat/Executing script on receiving incoming connection with xinetd