Поиск по сайту:

Как подключиться к компьютеру Linux с помощью VNC по сети


Хотите удаленно подключиться к рабочему столу на другом сервере Linux со своего рабочего стола Linux? Начать очень просто: эта статья покажет вам, как настроить VNC и напрямую подключиться к рабочему столу удаленной машины!

Что такое ВНК?

Часто нам нужны ресурсы рабочего стола/GUI (графического пользовательского интерфейса) «по другую сторону провода», и мы хотим избежать перехода (или проезда!) к удаленному компьютеру. Иногда может быть даже невозможно связаться с удаленной системой, поскольку она находится на другом конце света.

Добро пожаловать в мир удаленных рабочих столов, который позволяет вам с помощью программного пакета VNC (Virtual Network Computing) подключаться к рабочему столу/графическому интерфейсу удаленного компьютера.

Под капотом программное обеспечение VNC будет использовать протокол RFB (Remote Frame Buffer) для отправки нажатий клавиш и движений мыши в удаленную систему. Это как если бы вы сидели за удаленным компьютером, хотя и с некоторыми оговорками и небольшой дополнительной задержкой.

Предостережения относительно VNC

Существуют некоторые ограничения при использовании VNC для управления и/или использования удаленных рабочих столов. Одним из основных является то, что обновления дисплея могут быть медленными. Просмотр 4K-видео на удаленном рабочем столе при использовании интернет-соединения ADSL вряд ли даст положительные результаты. Иногда даже щелчок по значку для запуска приложения может вызвать небольшую задержку, поскольку экран должен обновиться.

Безопасность может быть еще одним соображением. Различные параметры включены в различное программное обеспечение VNC, но их настройка часто остается за пользователем, особенно в решениях с открытым исходным кодом. Другая проблема заключается в том, что VNC плохо масштабируется для многих пользователей. Он в основном подходит для домашнего использования, и пользователи небольших офисов также могут найти его полезным, например, имея один рабочий стол на одной машине, совместно используемый удаленно и используемый 1-3 пользователями.

Даже для крупных корпораций удаленное управление сервером (с одним или двумя системными администраторами на каждый сервер с поддержкой VNC) определенно является вариантом. С другой стороны, крупные корпорации часто отключают и/или удаляют любой графический рабочий стол со своих серверов, а удаленное управление осуществляется с помощью команд, введенных в терминале, с использованием SSH для подключения к серверу. SSH (Remote Secure Shell) можно использовать даже с мобильного телефона!

Подключение с помощью VNC к удаленному компьютеру Linux

Вам понадобится как сервер VNC, так и клиент VNC, чтобы иметь возможность использовать удаленный рабочий стол. Сервер VNC работает на удаленном конце, гарантируя, что клиент VNC, используемый с подключенной рабочей станции (почти всегда ваш собственный компьютер), может подключиться и что вывод на рабочий стол, нажатия мыши и клавиатуры передаются так же хорошо, как и возможный.

Иногда незначительные сбои или замедление сети могут вызвать частичную визуализацию экрана и т. д., хотя, вообще говоря, если у вас быстрая сеть (и быстрое подключение к Интернету, если вы используете компьютер через Интернет), рендеринг экрана будет достаточно хорошим, чтобы сделать некоторый уровень удаленной работы.

Установка VNC-сервера

VNC-сервер должен быть установлен на удаленной рабочей станции или сервере. Это можно сделать удаленно через SSH, хотя иногда вы можете перейти к удаленному компьютеру (если он достаточно близко), подключить клавиатуру и мышь и настроить там VNC. Лучший ответ зависит от вашей существующей инфраструктуры, где находится удаленная машина и есть ли у вас под рукой клавиатура и мышь или нет.

Какое программное обеспечение VNC-сервера вы выберете, зависит от нескольких факторов. Главный из них — предпочтение, и требуется немного времени, чтобы изучить множество вариантов, а затем протестировать несколько.

С коммерческой стороны есть RealVNC. Это отличный, хорошо работающий и поддерживаемый программный пакет, предназначенный для малого бизнеса, который не хочет тратить слишком много времени на то, чтобы заставить что-то работать хорошо. Коммерческие решения обычно хорошо работают, если вы управляете множеством серверов и клиентов как SME.

Если вам больше нравится открытый исходный код, в списке решений VNC для Ubuntu есть хороший начальный список серверов VNC. Популярным является x11vnc, на котором работает базовый VNC-сервер. Ubuntu также поставляется с предустановленным vino. Как правило, вы обнаружите, что каждое решение сервера VNC имеет свои преимущества и функции, а также недостатки и предостережения.

Наконец, вы хотите рассмотреть операционные системы, в которых вы будете использовать VNC. Будете ли вы подключаться с Windows на Linux или с планшета на свой ноутбук Macintosh? Все это возможно, но вы обнаружите, что некоторые решения VNC могут работать только с Linux на Linux, Windows на Windows и т. д.

Предполагая, что вы работаете в Linux, x11vnc — это простой VNC-сервер с открытым исходным кодом, рекомендованный Ubuntu, который вы можете установить. Установка проста, так как она доступна в apt:

sudo apt-get install x11vnc openssh-server

Затем вы можете запустить туннель SSH на порту 5900, который обрабатывает аутентификацию и предоставляет порт любому локальному клиенту VNC:

ssh -L 5900:remotehost:5900 hostname

И запускаем VNC-сервер:

x11vnc -safer -localhost -nopw -once -display :0

Вы также можете автоматически запускать x11vnc через systemd.

Использование VNC-клиента

Клиент VNC часто где-то используется как отдельный двоичный файл. Системный администратор может иметь клиентскую утилиту/бинарный файл VNC, например, непосредственно на своем локальном рабочем столе. Такой поставщик, как RealVNC, предоставит вам клиент VNC «бесплатно», тогда как сервер VNC — платное решение.

Важно, чтобы аутентификация клиента VNC и сервера VNC совпадала. Несмотря на то, что часто используются резервные механизмы, они обеспечивают более низкую безопасность на каждом уровне отката к менее качественному методу аутентификации.

Когда необходимо использовать надлежащую аутентификацию, можно настроить сервер VNC так, чтобы он требовал механизм аутентификации высокого уровня. Можно также заставить клиента использовать такой же высокий уровень. Использование VPN также гарантирует сквозное шифрование ваших данных VNC.

Последний аспект, который следует учитывать при рассмотрении клиент-серверного решения, заключается в том, что, если вы не используете коммерческое решение, обычно существует несколько строгая необходимость гарантировать, что клиент и сервер созданы одним и тем же создателем/распространителем программного обеспечения.

Могут быть небольшие различия в реализации базового протокола, механизмов аутентификации и самого программного обеспечения, что делает один клиент VNC не всегда совместимым с другим сервером VNC или может давать неопределенные результаты. Использование несовместимого клиента VNC и сервера VNC может отрицательно сказаться на уровне безопасности, а также на надежности установки.

Для решения с открытым исходным кодом и кроссплатформенного решения есть TightVNC, который работает в апплете Java на любом хост-компьютере.

Брандмауэры, говорите?

Брандмауэры могут потребовать перенастройки при установке VNC. Обычно это так же просто, как открыть несколько портов для определенного диапазона IP-адресов. Будучи максимально строгими при создании правила (или, другими словами, «дыры») в вашем брандмауэре, лучше разрешить подключение только ограниченному диапазону IP-адресов.

Вы можете использовать CIDR для ограничения диапазона IP-адресов. Например, правило, ограничивающее диапазон до 192.168.0.1/24, позволит подключать адреса от 192.168.0.1 до 192.168.0.254.

Фактические номера портов часто настраиваются внутри VNC-сервера, и в целях безопасности рекомендуется изменить их на исходный порт, отличный от используемого по умолчанию. Убедитесь, что номера портов, настроенные на сервере VNC, совпадают с новым правилом брандмауэра.

Если вы используете RealVNC, установщик спросит, хотите ли вы создать правило в брандмауэре. Он создает правило, которое является довольно открытым, и вы можете захотеть ограничить его еще больше, но его легче понять, когда основное правило уже установлено.

ВНК: TLDR;

Как мы видели, существует множество возможных путей и решений, когда дело доходит до внедрения решения VNC. Если вам просто нужна быстрая настройка и у вас есть только две рабочие станции на базе Ubuntu, может быть достаточно просто использовать бесплатное решение с открытым исходным кодом из списка, составленного командой Ubuntu. Если вы пытаетесь управлять несколькими рабочими столами как SME, коммерческое программное обеспечение, такое как RealVNC, может оказаться более простым решением.

После установки программного обеспечения пришло время настроить брандмауэр, настроить параметры сервера VNC по своему вкусу, настроить аутентификацию, если необходимо, и воспользоваться преимуществами, которые может предложить решение для удаленного рабочего стола!

Наслаждайтесь!