Действительно ли возможно перенаправить соединения с определенным IP/портом к внешнему IP/порту?
Пример:
Server A has the external IP xxx.xxx.xxx.xxx
Server B has the external IP yyy.yyy.yyy.yyy
Пользователь отправляет запрос к серверу на порте 25565, я хочу перенаправить его к серверу B в порте 25565, но у людей, которые соединяются с сервером B, должен быть их адреса IP, не адрес IP сервера A.
Это работает, но у всех людей, которые соединяются, есть адрес IP сервера A, и мне нужно это, у них будут свои собственные адреса IP.
iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination xxx.xxx.xxx.xxx
iptables -t nat -A POSTROUTING -p tcp -d xxx.xxx.xxx.xxx --dport 25565 -j SNAT --to-source yyy.yyy.yyy.yyy
Используя iptables -t nat -A PREROUTING -p tcp --dport 25565 -j MASQUERADE
вместо второй команды не работает также: /
Для выполнения этого Вам нужно DNAT
на сервере со следующими правилами:
iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to <server B IP>
iptables -t nat -A POSTROUTING -p tcp --sport 25565 -j SNAT --to <server A IP>
, Где:
<server A IP>
IP-адрес на Сервере, клиент видит <server B IP>
, IP-адрес хоста, слушающего на tcp/25565
, первое правило устанавливает: Клиент---> Сервер---> Сервер B (запросы)
И второе правило устанавливает: Сервер B---> Сервер---> Клиент (ответы)
Hope это помогает