У меня небольшие проблемы, когда я пытаюсь настроить обратный прокси-сервер и второй сервер. Моя идея состояла в том, чтобы заставить брандмауэр пересылать https на обратный прокси-сервер и порт 29418 (gerrit ssh) на второй сервер. Теперь мой сотрудник IT говорит: НЕ МОЖЕТ! Либо оба порта идут на сервер 1, либо оба порта идут на сервер 2.
Хорошо, в качестве обходного пути я попытался настроить переадресацию портов на обратном прокси-сервере порта 29418 -> server2: 29418
Подробности:
Теперь и HTTPS, и порт 29418 отправляются из брандмауэр до 10.0.0.132, ИТ говорит, что это единственный выход. : (
Так скажите, пожалуйста, как переадресовать с 10.0.0.132:29418 -> 192.168.10.3:29418 или 10.0.0.133:29418
Когда я работаю над 10.0.0.132, я может подключаться как к 10.0.0.133:29418, так и к 192.168.10.3:29418, поэтому порты открыты.
- Обновление -
Мой iptables -t nat -L выглядит так: [ 1110]
root@dev:/root# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere dev.example.com tcp dpt:29418 to:10.0.0.133 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination root@dev:/root# cat /proc/sys/net/ipv4/ip_forward 1
В случае, если кто-то еще ищет способ, который действительно работает. Хотя @HorsePunchKid прав в своем предложении, я нашел это пошаговое руководство, которое заполняет пропущенные шаги:
http://www.debuntu.org/how-to-redirecting-network-traffic -to-a-new-ip-using-iptables /
По сути:
Включить IP-пересылку:
sysctl net.ipv4.ip_forward=1
Добавить правило переадресации (использовать nnnn: port):
iptables -t nat -A PREROUTING -p tcp -d 10.0.0.132 --dport 29418 -j DNAT --to-destination 10.0.0.133:29418
Попросите IPtables Маскарад:
iptables -t nat -A POSTROUTING -j MASQUERADE
И это все! В любом случае у меня это сработало :)
Если у вас установлен iptables на 10.0.0.132, я думаю, что это будет довольно просто:
iptables -t nat -A PREROUTING -j DNAT -d 10.0.0.132 -p tcp --dport 29418 --to 10.0.0.133
Это говорит об отправке трафика, поступающего в 10.0.0.132 через порт 29418, вместо 10.0.0.133 на том же порту, до любой другой маршрутизации, которую 10.0.0.132 может попытаться сделать. Если вы запустите эту команду и у вас возникнут проблемы, замените флаг -A на -D, чтобы удалить ее.
Если вы хотите, чтобы это правило запускалось автоматически при запуске 10.0.0.132, рассмотрите возможность добавления вышеупомянутой команды в качестве правила «post-up» в /etc/network/interfaces.
Если кто-то ищет временный метод, попробуйте следующее решение.
ssh -L 192.168.0.10:8080:10.0.0.10:80 root@10.0.0.10
Приведенная выше команда перенаправляет все соединения с порта 8080 на вашей базовой машине на порт 80 вашей виртуальной машины. Вы можете проверить работу, зайдя на веб-страницу http://192.168.0.10:8080 , и она покажет вам веб-страницу на гостевой машине.
Это относится ко всем портам:)
В конце концов мне пришлось установить pfSense в качестве маршрутизатора внутри моего сервера ESXi для маршрутизации трафика на разные виртуальные машины, поскольку я не мог заставить его работать в Ubuntu.