на данный момент я занимаюсь сетью для компании, у которой есть разные поддомены, указывающие на один и тот же IP-адрес для разных целей. У нас есть example.com для их веб-сайтов и gitlab.example.com для их экземпляра Gitlab.
В настоящее время мы хотим переместить экземпляр Gitlab на другой сервер в той же сети. Для веб-интерфейса Gitlab мы используем nginx в качестве обратного прокси для IP другого сервера и для управления SSL-сертификатами и хостом.
Но теперь у нас есть проблема, что мы не можем установить ssh-соединение с этим другим сервером, потому что WAN-порт перенаправляется на веб-сервер, а не на новый gitlab-сервер, и нам нужен этот порт, указывающий на веб-сервер. Но еще и из-за количества проектов, которые у нас есть, мы не можем изменить порт. (У нас нет времени перенастраивать все эти проекты в git)
Есть ли возможность позволить веб-серверу действовать как реле для gitlab-сервера? Чтобы каждое соединение с gitlab.example.com перенаправлялось на этот конкретный сервер?
Спасибо за вашу помощь!!
Простой ответ будет следующим:
Это перенаправит весь трафик SSH (порт 22) с внешнего сервера на внутренний сервер.
Этого также можно добиться с помощью DNAT / SNATing через IPTables, но это намного сложнее, чем описанное выше решение. Непроверенный пример здесь:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j DNAT --to <gitlabIP>:22
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to <gitlabIP>:22
iptables -t nat -A POSTROUTING -p tcp -d <gitlabIP> --dport 22 -j MASQUERADE