Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Предварительные требования
- Сервер или виртуальная машина с установленным VNC. В качестве реализации VNC можно воспользоваться программой TightVNC. Мы описывали ее установку в отдельной статье.
- Второй сервер или виртуальная машина с предустановленной ОС Linux с графической оболочкой. Использовать можно любой современный дистрибутив Linux. Также в качестве клиентского устройства можно использовать домашний компьютер или ноутбук с ОС Windows, причем можно использовать как домашние (Home) и профессиональные версии, так и редакции Windows Server.
Создание SSH-туннеля при помощи стандартной утилиты ssh
Для начала организуем SSH-туннель при помощи стандартного OpenSSH-клиента, который предустановлен по умолчанию практически во всех современных дистрибутивах Linux, а также в операционных системах семейства Windows, начиная с Windows 10 версии 1709 и выше, Windows 11, Windows Server 2019 и Windows Server 2022. Также на Windows системах можно использовать любые дистрибутивы WSL (Windows Subsystem for Linux — подсистема Linux для Windows). Команда используемая ниже одинакова будет работать как в Linux-дистрибутивах, так и в Windows:
ssh -L 5901:localhost:5901 root@147.45.146.116-L— ключ, отвечающий за проброс локального порта. При локальном пробросе происходит проброс порта из клиентского устройство на сервер. Все последующие установленные соединения на данный локальный порт будут проходить через SSH-туннель.5901:localhost:5901— синтаксис для проброса удаленного порта. В данном примере мы сообщаем SSH, что хотим пробросить порт 5901 (порт VNC-сервера), который находится на удаленном сервере, с целью получить доступ до VNC-сервера. В свою очередь мы также открываем порт (в данном случае 5901) на своем устройстве (localhost).root@147.45.146.116— стандартный синтаксис для подключения по протоколу SSH видалогин@адрес_удаленного_сервера.
После того как команда будет введена, система запросит пароль от используемого пользователя, и при правильном вводе вы попадете на сервер. После этого в системе будет организован SSH-туннель. Важно не отключаться от сервера, чтобы не оборвать SSH-сессию.
Если необходимо запустить SSH-туннель в режиме «демона» (в фоновом режиме), то воспользуйтесь опциями -fNT, например:
ssh -fNT -L 5901:localhost:5901 root@147.45.146.116-f— после ввода пароля пользователя вместо приглашения к вводу оболочки запущенный процессsshперейдет в фоновой режим;N— не выполнять никакую команду на удаленном сервере после запуска тоннеля;T— отключает использование терминала.
После того как SSH-туннель был успешно установлен, можно подключаться при помощи любой клиентской утилиты для VNC, например TightVNC Connection. Запускаем утилиту и в поле «Remote Host» вводим адрес localhost::5901:
Обратите внимание на использование двух символов двоеточия после localhost — данная особенность применима только к программе TightVNC Connection.
После ввода адреса нажимаем на кнопку «Connect». Программа запросит пароль от VNC-сессии, который задается на этапе настройки сервера VNC:
После того как пароль будет введен, откроется окно с графическим интерфейсом сервера:
Весь трафик от вашего устройства до сервера VNC теперь полностью защищен и зашифрован.
Создание SSH туннеля при помощи PuTTY
Помимо использования стандартной утилиты ssh, организовать туннель можно при помощи популярной клиентской утилиты для подключения к удаленным серверам — PuTTY. Для этого выполняем следующие шаги:
- Запускаем PuTTY и в главном меню заполняем следующие поля:
-
* Host Name (or IP address) — прописываем IP-адрес сервера VNC;
* Port — задаем порт который использует SSH;
* Saved Sessions — вводим любое имя для создаваемой сессии с целью ее дальнейшего сохранения и быстрого запуска SSH-туннеля.- Host Name (or IP address) — прописываем IP-адрес сервера VNC;
- Port — задаем порт который использует SSH;
- Saved Sessions — вводим любое имя для создаваемой сессии с целью ее дальнейшего сохранения и быстрого запуска SSH-туннеля.
Далее нажимаем на кнопку «Save» чтобы сохранить текущую сессию:
-
Далее в меню слева ищем раздел «Connection», раскрываем его и переходим в «Tunnels»:
-
В открывшемся разделе заполняем следующую информацию:
-
* Source port — указываем порт, который будет открыт на клиентском устройстве, например 5901;
* Destination — прописываем IP-адрес сервера VNC, а также порт VNC-сервера.- Source port — указываем порт, который будет открыт на клиентском устройстве, например 5901;
- Destination — прописываем IP-адрес сервера VNC, а также порт VNC-сервера.
После того как все данные введены, нажимаем на кнопку «Add»:
-
Возвращаемся в главное меню PuTTY (раздел «Session») и подключаемся к серверу, нажав на кнопку «Open». При первом входе на сервер необходимо принять host key, нажав на кнопку «Accept»:
-
После ввода пароль от учётной записи откроется терминал сервера:
-
Не закрывая окно PuTTY сессии, открываем клиентское приложение, например, TightVNC Connection, и вводим адрес
localhost:5901:
После ввода пароля от VNC-сессии отобразится графический интерфейс сервера:
Создание SSH туннеля при помощи MobaXterm
Еще одной популярной программой на ОС Windows для удаленного подключения к серверам является MobaXterm. С ее помощью тоже можно организовать SSH-туннель. Для этого выполним следующие шаги:
-
Запускаем программу и сверху ищем пункт «Tunneling»:
-
При открытии окна с настройками туннеля убеждаемся, что выбрана опция «Local port forwarding», а также заполняем следующие данные:
-
* В разделе «My computer with MobaXterm» вводим локальный порт (5901), который будет открыт на устройстве;
* В разделе «SSH server» прописываем адрес удаленного сервера VNC, логин и пароль для подключения к серверу;
* В разделе «Remote server» указываем адрес `localhost` и порт `5901`.- В разделе «My computer with MobaXterm» вводим локальный порт (5901), который будет открыт на устройстве;
- В разделе «SSH server» прописываем адрес удаленного сервера VNC, логин и пароль для подключения к серверу;
- В разделе «Remote server» указываем адрес
localhostи порт5901.
Для сохранения настроек нажимаем на кнопку «Save».
-
В открывшемся окне нажимаем на кнопку запуска в разделе «Start/stop»:
-
После того как SSH-туннель был запущен, переходим в раздел «Session»:
В пункте «Remote hostname or IP address» вводим localhost, а в пункте «Port» вводим 5901:
Для подключения нажимаем на кнопку «OK».
После ввода пароля от VNC-сесиии откроется графическая оболочка сервера:
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.