我的服务运行在端口30000-32000的VPS (1.1.1.1)上.
我希望VPS B(2.2.2.2)将它们转发到20000- 22000。
(您可以查看下面的演示图链接,以了解我想要实现的目标:D )
我使用下面的命令来设置iptable:
iptables -t nat -A PREROUTING -p tcp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000
iptables -t nat -A PREROUTING -p udp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000经过一些测试后,我发现似乎只有端口20000在转发原始服务器的端口30000。然而,其他端口不起作用。
我检查了以下四件事: 1.运行在端口30000 - 32000上的VPS (1.1.1.1)'s服务服务功能齐全
(即net.ipv4.ip_forward = 1)
(您可以查看下面的演示图链接,以了解我想要实现的目标:D )
一切都很好。
我真的不知道如何做到这一点。任何帮助都是非常感谢的!提前谢谢你!
发布于 2017-10-02 06:00:26
你需要改变iptable的规则。您的DNAT规则不过滤来自用户的传入流量的目标IP地址。SNAT规则不过滤来自A服务器的传入通信量的源IP地址和源端口30000:32000范围。您需要在B服务器上:
iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p tcp -s 1.1.1.1 --sport 30000:32000 -j SNAT --to-source 2.2.2.2:20000:22000
iptables -t nat -A PREROUTING -p udp -d 2.2.2.2 --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p udp -s 1.1.1.1 --sport 30000:32000 -j SNAT --to-source 2.2.2.2:20000:22000https://serverfault.com/questions/876364
复制相似问题