У меня есть ситуация, когда я хочу подключиться к машине Linux, на которой запущен VNC (назовем его VNCServer), который находится за двумя последовательными машинами Linux, то есть для ssh в VNCServer, мне нужно ssh в Gateway1 с моего ноутбука, а затем из оболочки Gateway1 Я подключился по ssh к Gateway2, а затем из этой оболочки я наконец подключился к VNCServer. Я не могу изменить структуру сети и поток доступа. Ноутбук -> Шлюз1 -> Шлюз2 -> Сервер. У меня нет привилегий root на Gateway1, и все порты, кроме 22 и 5901, закрыты.
Есть ли способ запустить программу просмотра VNC на моем ноутбуке и получить доступ к VNCServer? Я понимаю, что это может быть сделано с использованием функций туннелирования ssh, и у меня есть замазка на моем ноутбуке с Windows (извините, на рабочий ноутбук нельзя установить Linux или Cygwin и т. Д.). Любая помощь будет принята с благодарностью, так как это сделает мою жизнь проще!
Putty поддерживает туннели ssh, если вы развернете дерево Connection, SSH, вы увидите запись для туннелей.
Локальные туннели создают порт localhost, открывающийся на вашем компьютере с Windows, который удаленно подключается к указанному вами IP-адресу и порту. Например, когда я пытаюсь подключить RDP к рабочему столу в моем доме, я обычно выбираю случайный локальный порт, например 7789, а затем помещаю локальный IP-адрес рабочего стола (1.2.3.4:3389) в качестве удаленного хост. Обязательно нажмите «Добавить», затем «Применить». На этом этапе, когда вы установите rdp на 127.0.0.1:7789, вы затем подключитесь к 1.2.3.4:3389 через сеанс шпатлевки.
Вот где начинается самое интересное. Если вы затем настроите туннель порта в своем промежуточном блоке, настроив локальный порт, который вы указали как удаленный порт в замазке, вы можете затем перескочить через замазку через промежуточный ящик в конечный пункт назначения. Вам все равно нужно будет выполнить несколько ssh-подключений, но вы сможете пересекать vnc или rdp непосредственно из системы Windows, как только вы настроите, что, я думаю, вы хотите сделать.
ПРИМЕР
ДОБАВЛЕННЫЙ БОНУС - мало кто знает об этом, но этот процесс также можно использовать для проксирования трафика IPv6 / IPv4. SSH не заботится о том, какой протокол он использует для туннелей, поэтому теоретически вы можете получить доступ к хостам только IPv6 из системы, работающей только с IPv4, учитывая, что сервер ssh имеет двойной стек (имеет адреса IPv4 и IPv6).
Есть альтернатива, если вы хотите использовать PuTTY для обоих переходов. В этом примере мы переключаемся со шлюза №1 (10.0.1.123) на шлюз №2 (10.0.1.456) на порт 80 на 10.0.1.789.
Сначала создайте переход к шлюзу №1. Сначала настройте соединение с первым сервером. Настройте туннель ко второму шлюзу в Connection> SSH> Tunnels. В этом примере мы перенаправляем порт 2222 на второй шлюз.
Теперь мы настроим второй прыжок. Мы проведем туннелирование через первый шлюз к следующему шлюзу и настроим переадресацию портов на втором шлюзе. Подключение осуществляется к localhost на порту 2222. Это будет туннелировать через работающее соединение ssh на второй переход. В этом подключении мы настраиваем переадресацию порта с порта 3333 на порт 10.0.1.789.
Теперь откройте браузер и перейдите к 127.0.0.1:3333, и вы туннелируете через два соединения SSH на 10.0.1.789:80.