Назад | Перейти на главную страницу

как перенаправить IP-запрос на определенный порт

У меня 2 сервера

в Bind у меня 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

Я думаю, мне нужно сделать это в iptables SRV02. Я просматривал тему об iptables, но ничего не подходящего для меня.

не могли бы вы помочь мне ?

rgds.

Просто привяжите другой IP к SRV02. Если у вас нет дополнительных внешних IP-адресов, можно также использовать внутренние (с некоторыми дополнительными приемами). Установите прокси Squid. Это может перенаправить трафик на другой порт.

http://www.linuxquestions.org/questions/linux-networking-3/debian-iptables-squid-redirect-port-80-to-port-8080-on-another-machine-474027/

Пока оба сервера общедоступны, это возможно. Укажите s1.domain.tld на SRV01IP и укажите s2.domain.tld на SRV02IP. s2.domain.tld: 25565 уже работает. Настройте minecraft на: 25566 на SRV02IP, а затем в iptables на SRV01IP вам нужно переслать: 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

Наконец, чтобы он заработал, вам нужно включить переадресацию IP в proc:

echo "1" > /proc/sys/net/ipv4/ip_forward

Все готово. Следует отметить, что это не будет сохраняться между перезагрузками. Чтобы он сохранялся, убедитесь, что вы сохранили свои правила IPTables (различаются в зависимости от дистрибутива) и отредактируйте /etc/sysctl.conf, чтобы сохранить ip_forward, отредактировав следующую строку (или добавив ее, если она не существует):

net.ipv4.ip_forward = 1

Похоже, у вас есть один общедоступный IP-адрес и два внутренних сервера с частными IP-адресами (?) - Если это так, то, о чем вы спрашиваете, невозможно: у вас не может быть двух приложений, прослушивающих один и тот же порт и (общедоступный) IP-адрес.

Вы не можете сделать это из DNS (DNS A записи не имеют понятия «порт»), и делать это из iptables - это неправильно (это может быть даже невозможно, но если бы это было связано с поиском DNS в правиле брандмауэра, что я бы не советовал).
Для работы вам понадобятся два общедоступных IP-адреса, либо вам нужно запустить один из серверов Minecraft на альтернативном порту.