我有2台服务器
在绑定我有2个服务器MC的录音
s1.domain.tld A SRV02IP s2.domain.tld A SRV02IP
2 MC服务器在2个不同的端口25565和25566上运行
所以我希望来自s1.domain.tld:25565的请求将发送到SRV02IP:25565并且来自s2.domain.tld:25565的请求将发送到SRV02IP:25566
我想我需要在SRV02 iptables中做这个。 我已经看了一些关于iptables的话题,但是和我无关。
你可以帮帮我吗 ?
RGDS。
只要两台服务器都可以公开访问,这是可能的。 将s1.domain.tld指向SRV01IP,将s2.domain.tld指向SRV02IP。 s2.domain.tld:25565已经有效。 在SRV02IP上设置我的世界:25566,然后在SRV01IP的iptables上,你需要转发:25565到SRV02IP:25566:
iptables -t nat -I PREROUTING -p tcp --dport 25565 -j DNAT --to-destination SRV02IP:25566 iptables -t nat -I POSTROUTING -p tcp --dport 25566 -j MASQUERADE
最后,要使其工作,您需要在proc中启用IP转发:
echo "1" > /proc/sys/net/ipv4/ip_forward
可以了,好了。 有一点要注意的是,这不会在重新启动之间持续。 要保持它的存在,请确保保存了IPTables规则(根据发行版不同而不同),并编辑/etc/sysctl.conf以通过编辑以下行(或者如果不存在,添加它)来使ip_forward持续存在:
net.ipv4.ip_forward = 1
只要绑定另一个IP到SRV02。 如果你没有额外的外部IP也可以使用内部(有一些额外的技巧)。 安装Squid代理。 这可以将stream量redirect到另一个端口。
这听起来像你有一个公共IP和两个后端服务器与私人IP(?) – 如果这是你所问的情况是不可能的:你不能有两个应用程序侦听相同的端口和(公共)IP地址。
你不能这样做从DNS(DNSlogging没有“端口”的概念),从iptables做是错误的事情(这可能不可能,但如果它是涉及到在防火墙规则中做DNS查找这不是我会build议的)。
您需要两个公共IP地址才能使其工作,或者您需要在备用端口上运行您的一台Minecraft服务器。