- Подключение к удаленному компьютеру по VNC
- Как установить и настроить VNC в Debian 9
- Подготовка
- Установка среды рабочего стола
- Установка VNC-сервера
- Настройка VNC-сервера
- Создание файла модуля Systemd
- Подключение к VNC-серверу
- Настроить SSH-туннелирование в Linux и macOS
- Настроить SSH-туннелирование в Windows
- Подключение с помощью Vncviewer
- Выводы
- Установка и настройка VNC в Debian 10
- Требования
- 1: Установка среды рабочего стола и сервера VNC
- 2: Настройка сервера VNC
- 3: Безопасное подключение к VNC
- 4: Создание файла сервиса VNC
- Заключение
Подключение к удаленному компьютеру по VNC
Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.
1. Установка VNC-клиента
2. Подключение VNC-клиента к удаленному компьютеру
3. Отключение VNC-клиента от удаленного компьютера
4. Тюнинг VNC-клиента
5. Частые проблемы
Для работы с удаленным компьютером по VNC на компьютере пользователя нужно запустить программу-клиент (VNC viewer, VNC client). Эта программа передает на удаленный компьютер данные о нажатиях на клавиши и о движениях мыши, сделанных пользователем, и показывает информацию, предназначенную к выводу на экран.
1. Установка VNC-клиента
Для ОС Windows можно бесплатно скачать и инсталлировать VNC-клиент UltraVNC и TightVNC.
Mac OS X начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop. Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и Chicken.
Для Linux ветви Debian (Ubuntu) VNC-клиент устанавливается из репозитория командой:
apt-get install vncviewer
Для ветви RedHat (CentOS, Fedora) — командой:
yum install vnc
Для FreeBSD VNC-клиент (TightVNC) устанавливается из пакетов командой:
pkg_add -r tightvnc
2. Подключение VNC-клиента к удаленному компьютеру
Для подключения VNC-клиента к удаленному компьютеру требуется указать его IP-адрес или DNS-имя, и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Обратите внимание, что пароль доступа к VNC-серверу не связан с каким-либо аккаунтом (учетной записью пользователя) на удаленном компьютере, а служит только для ограничения доступа к дисплею VNC-сервера.
После установки соединения и открытия экрана, в зависимости от настроек VNC-сервера может потребоваться авторизация пользователя на виртуальном сервере или может быть открыта уже запущенная рабочая сессия какого-либо пользователя.
Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр номер дисплея. Например, один VNC-сервер может быть запущен на дисплее :0, другой — на дисплее :1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта — 5900. Дисплею :0 соответствует TCP-порт 5900, дисплею :1 — порт 5901.
3. Отключение VNC-клиента от удаленного компьютера
При закрытии окна VNC-клиента или после выхода из окружения средствами рабочего стола, в зависимости от настроек VNC-сервера, рабочая сессия пользователя может закрыться с остановкой всех используемых программ, или продолжать работу и быть доступной снова при повторном подключении к VNC-серверу.
4. Тюнинг VNC-клиента
Большое количество передаваемой на экран информации влечет за собой повышенные требования к скорости канала — к его пропускной способности и времени передачи пакетов. Нахватка пропускной способности приводит к некомфортным задержкам при больших изменениях показывамой на экране информации — открытии новых окон, скроллинге и т.д. Особенно большие задержки будут возникать при показывании фотографий и других изображений или элементов интерфейса, имеющих большое количество цветов и сложные формы.
Главный параметр, который влияет на объем передаваемых данных — алгоритм кодирования передаваемой графики. Для уменьшения объема и, соответственно, ускорения работы, рекомендуется использовать алгоритмы Tight, ZLib, ZRLE — по сравнению с несжатыми данными (Raw), они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек.
Для сокращения объема передаваемой по сети информации также можно устанавливать высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включать режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект из них при заметном снижении качества изображения дает режим уменьшения количества цветов — объем передаваемой информации уменьшается в 1.5-3 раза, соответственно, в 1.5-3 раза ускоряется отображение на экране.
JPEG применяется алгоритмом кодирования Tight для сжатия участков экрана, содержащих фотографии и другие сложные изображения с большим числом цветов. Использование Tight+JPEG сокращает в 2-5 раз объем передаваемых при этом данных. Другие алгоритмы кодирования JPEG не поддерживают.
1. Выпадающего меню «Система -> Параметры»
Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):
Полноцветный режим | 256 цветов (BGR233) | |||
---|---|---|---|---|
Объем | Время | Объем | Время | |
ZLib | 11 Кб | 0.09 сек | 7 Кб | 0.06 сек |
HexTile | 208 Кб | 1.6 сек | 118 Кб | 0.95 сек |
Raw | 248 Кб | 2 сек | 128 Кб | 1 сек |
5. Частые проблемы
Не удается подключиться к VNC-серверу
Медленная работа через достаточно быстрый канал
Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию — Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия — ZLib, ZRLE, Tight.
Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.
Источник
Как установить и настроить VNC в Debian 9
В этом руководстве описывается, как установить и настроить сервер VNC в Debian 9. Мы также покажем вам, как создать туннель SSH и безопасно подключиться к серверу VNC.
Virtual Network Computing (VNC) — это графическая система совместного использования рабочего стола, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером.
Подготовка
Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установка среды рабочего стола
Скорее всего, на вашем сервере Debian не будет установлена среда рабочего стола. Наш первый шаг — установить легкую среду рабочего стола.
В репозиториях Debian доступно несколько окружений рабочего стола (DE). Мы будем использовать Xfce в качестве предпочтительной среды рабочего стола. Он быстрый, стабильный и легкий, что делает его идеальным для использования на удаленном сервере.
Обновите индекс пакетов и установите Xfce на свой сервер Debian с помощью следующих команд:
В зависимости от вашей системы загрузка и установка пакетов Xfce может занять некоторое время.
Установка VNC-сервера
В репозиториях Debian также есть несколько различных серверов VNC, таких как TightVNC , TigerVNC и x11vnc . Каждый сервер VNC имеет свои сильные и слабые стороны с точки зрения скорости и безопасности.
Мы будем использовать TigerVNC, который является активно поддерживаемым высокопроизводительным сервером VNC. Чтобы установить TigerVNC на ваш сервер Debian, выполните следующую команду:
После установки сервера VNC запустите команду vncserver чтобы создать начальную конфигурацию и установить пароль. Не используйте sudo при выполнении следующей команды:
Вам будет предложено ввести и подтвердить пароль, а также указать, следует ли установить его как пароль только для просмотра. Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры.
Когда вы запускаете команду vncserver в первый раз, она создаст и сохранит файл паролей в каталоге
Обратите внимание на :1 после имени хоста в выходных данных выше. Это указывает номер порта дисплея, на котором работает сервер vnc. В нашем случае сервер работает на TCP-порту 5901 (5900 + 1). Если вы создадите второй экземпляр с vncserver он будет работать на следующем свободном порту, например :2 , что означает, что сервер работает на порту 5902 (5900 + 2).
Важно отметить, что при работе с серверами VNC :X — это порт дисплея, который относится к 5900+X
Перед тем как перейти к следующему шагу, остановите экземпляр VNC с помощью команды vncserver с параметром -kill и номером сервера в качестве аргумента. В этом случае сервер работает на порту 5901 ( :1 ), поэтому мы остановим его с помощью:
Настройка VNC-сервера
Теперь, когда на машине установлены и Xfce, и TigerVNC, нам нужно настроить TigerVNC для использования Xfce. Для этого создайте следующий файл:
После этого сохраните и закройте файл. Приведенный выше сценарий будет автоматически выполняться при каждом запуске или перезапуске сервера TigerVNC.
/.vnc/xstartup также должен иметь разрешения на выполнение. Выполните следующую команду chmod чтобы убедиться, что разрешения верны:
Если вам нужно передать дополнительные параметры на сервер VNC, вы можете создать файл с именем config и добавить по одному параметру в каждой строке. Вот пример:
Создание файла модуля Systemd
Файл модуля systemd позволит нам легко запускать, останавливать и перезапускать службу VNC по мере необходимости.
Откройте текстовый редактор, скопируйте и вставьте в него следующую конфигурацию. Не забудьте изменить имя пользователя в строке 7, чтобы оно соответствовало вашему имени пользователя.
Сохраните и закройте файл.
Notify Systemd что новый vncserver@.service файл существует , выполнив следующую команду:
Затем включите службу:
Число 1 после знака @ определяет порт дисплея, на котором будет работать служба VNC. Как мы обсуждали в предыдущем разделе, поскольку мы используем 1 сервер VNC будет прослушивать порт 5901 .
Запустите службу VNC, выполнив:
Убедитесь, что служба успешно запущена:
Подключение к VNC-серверу
VNC не является зашифрованным протоколом и может подвергаться перехвату пакетов. Рекомендуемый подход — создать туннель SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер на том же порту.
Настроить SSH-туннелирование в Linux и macOS
Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель SSH с помощью команды ssh :
Вам будет предложено ввести пароль пользователя.
Не забудьте заменить username и server_ip_address своим именем пользователя и IP-адресом вашего сервера.
Настроить SSH-туннелирование в Windows
Если вы используете Windows, вы можете настроить SSH-туннелирование с помощью SSH-клиента PuTTY .
Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address .
В меню « Connection разверните SSH и выберите « Tunnels . Введите порт сервера VNC ( 5901 ) в поле Source Port и введите server_ip_address:5901 в поле Destination и нажмите кнопку Add , как показано на изображении ниже:
Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их каждый раз. Теперь все, что вам нужно сделать, это выбрать сохраненный сеанс и войти на удаленный сервер, нажав кнопку « Open .
Подключение с помощью Vncviewer
Теперь, когда вы настроили SSH-туннелирование, пора открыть Vncviewer и подключиться к VNC-серверу по адресу localhost:5901 .
Вы можете использовать любую программу просмотра VNC, такую как TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre и VNC Viewer для Google Chrome .
В этом примере мы будем использовать TigerVNC. Откройте программу просмотра VNC, введите localhost:5901 и нажмите кнопку « Connect .
При появлении запроса введите пароль, и вы должны увидеть рабочий стол Xfce по умолчанию. Это должно выглядеть примерно так:
На этом этапе вы успешно подключились к своему серверу через VNC. Теперь вы можете начать взаимодействие с удаленным рабочим столом XFCE со своего локального компьютера, используя клавиатуру и мышь.
Выводы
К настоящему времени у вас должен быть запущен VNC-сервер, и вы можете легко управлять своим сервером Debian 9 с локального компьютера с помощью графического интерфейса.
Чтобы настроить сервер VNC для запуска отображения для нескольких пользователей, создайте начальную конфигурацию и установите пароль с помощью команды vncserver . Вам также необходимо будет создать новый служебный файл, используя другой порт.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Установка и настройка VNC в Debian 10
VNC (Virtual Network Computing) – это система удалённого доступа, с помощью которой можно использовать клавиатуру и мышь для взаимодействия с графическим интерфейсом рабочего стола удалённого сервера. Благодаря VNC можно управлять файлами, программным обеспечением и настройками удалённого сервера, не обращаясь к командной строке.
Этот мануал поможет установить VNC на виртуальный сервер Debian 10 и настроить безопасное подключение при помощи SSH-туннеля. Сервер VNC будет использовать TightVNC, быстрый и легковесный пакет удалённого управления, поддерживающий работу даже при медленном интернете.
Требования
- Сервер Debian 10, настроенный по этому мануалу.
- Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Для Windows можно установить TightVNC, RealVNC или UltraVNC. Пользователи Mac OS X могут использовать встроенный пакет Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC, TightVNC и т.п.
1: Установка среды рабочего стола и сервера VNC
По умолчанию серверы Debian 10 поставляются без предустановленного графического окружения рабочего стола и сервера VNC. Сначала нужно установить эти компоненты. В этом мануале используются пакеты Xfce и TightVNC, доступные в официальном репозитории Debian.
Чтобы установить на сервер указанные пакеты, обновите индекс и введите команду:
sudo apt update
sudo apt install xfce4 xfce4-goodies
Во время установки вам будет предложено выбрать раскладку клавиатуры из списка доступных параметров. Выберите клавиатуру вашего языка и нажмите Enter. Теперь установите TightVNC:
sudo apt install tightvncserver
Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncserver.
Команда предложит установить и подтвердить пароль:
You will require a password to access your desktops.
Password:
Verify:
Пароль должен быть от шести до восьми символов. Более длинные пароли будут автоматически сокращены до 8 символов.
После того как вы подтвердите пароль, у вас будет возможность создать пароль только для просмотра. Пользователи, получающие доступ к VNC при помощи пароля для просмотра, не смогут управлять VNC через мышь или клавиатуру. Такой пароль позволяет вам демонстрировать среду VNC другим пользователям в случае необходимости.
Затем начальная настройка VNC завершится и создаст конфигурационные файлы:
Would you like to enter a view-only password (y/n)? n
xauth: file /home/8host/.Xauthority does not exist
New ‘X’ desktop is your_hostname:1
Creating default startup script /home/8host/.vnc/xstartup
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/your_hostname:1.log
2: Настройка сервера VNC
Сначала нужно определить команды, которые сервер VNC будет выполнять при запуске. Они должны находиться в файле xstartup в каталоге .vnc, который хранится в домашнем каталоге текущего пользователя. Сценарий запуска был создан командой vncserver, но его нужно откорректировать для работы с Xfce.
При первом запуске VNC использует порт 5901. VNC называет этот порт :1. VNC может запускать другие экземпляры на другие порты, которые будут называться :2, :3, и т.д.
Чтобы изменить настройки сервера VNC, нужно остановить экземпляр, использующий порт 5901.
vncserver -kill :1
Команда вернёт такое сообщение (PID будет отличаться):
Killing Xtightvnc process ID 17648
Создайте резервную копию файла xstartup:
Затем создайте новый файл xstartup:
Вставьте в него следующие команды, которые будут выполняться автоматически при запуске сервера VNC. Сохраните и закройте файл.
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
При помощи первой команды, xrdb $HOME/.Xresources, GUI сервера VNC читает файл .Xresources. В этом файле пользователь может вносить изменения в некоторые настройки графического рабочего стола (настраивать цвета терминала, темы, шрифты). Вторая команда просто запускает Xfce, в котором хранится все графическое программное обеспечение, необходимое для управления сервером.
Теперь нужно сделать файл исполняемым:
Во время запуска сервер вернёт:
New ‘X’ desktop is your_hostname:1
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/your_hostname:1.log
3: Безопасное подключение к VNC
При подключении VNC не использует безопасные протоколы. Создайте SSH-туннель для безопасного подключения к серверу, а затем настройте клиент VNC для поддержки туннеля вместо прямого подключения.
Создайте на локальном компьютере соединение SSH, которое перейдет в localhost соединение для VNC. Вы можете сделать это в Linux или macOS через терминал с помощью следующей команды:
ssh -L 5901:127.0.0.1:5901 -C -N -l 8host your_server_ip
Флаг -L указывает привязки портов. В этом случае мы привязываем порт 5901 удаленного подключения к порту 5901 на локальном компьютере. Флаг -C включает сжатие, а -N сообщает ssh, что выполнять удаленную команду не нужно. Параметр -l указывает имя удаленного входа.
Не забудьте заменить 8host и your_server_ip своими данными.
Если вы работаете через графический SSH-клиент, как PuTTY, используйте настройках SSH-туннеля your_server_ip в качестве IP-соединения и установите localhost: 5901 в качестве нового порта.
Когда туннель запустится, используйте VNC клиент для подключения к localhost:5901. При этом будет запрошен пароль, который вы выбрали в разделе 1.
После этого вы увидите стандартный экран Xfce. Выберите Use default config для быстрой настройки.
Вы можете получить доступ к файлам в своем домашнем каталоге с помощью диспетчера файлов или из командной строки.
Нажмите CTRL + C в терминале, чтобы закрыть туннель SSH и вернуться в командную строку. Это также завершит ваш сеанс VNC.
4: Создание файла сервиса VNC
Теперь нужно настроить сервер VNC как сервис system.
Создайте новый юнит-файл /etc/systemd/system/vncserver@.service:
sudo nano /etc/systemd/system/vncserver@.service
Символ @ в конце имени файла позволит вам передать аргумент, который можно использовать в конфигурации сервиса. С его помощью можно указать порт VNC, который нужно использовать при управлении сервисом.
Добавьте в файл следующие строки. Обязательно измените значение User, Group, WorkingDirectory и имя пользователя в значении PIDFILE.
[Unit] Description=Start TightVNC server at startup
After=syslog.target network.target
[Service] Type=forking
User=8host
Group=8host
WorkingDirectory=/home/8host
PIDFile=/home/8host/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install] WantedBy=multi-user.target
Команда ExecStartPre останавливает VNC, если сервис уже запущен. Команда ExecStart запускает VNC и устанавливает глубину цвета – 24-битный цвет с разрешением 1280×800. Вы также можете изменить эти параметры в зависимости от потребностей.
Сохраните и закройте файл.
Затем сообщите системе про новый юнит файл.
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
Цифра 1, идущая за @, определяет, какой номер дисплея должен отображаться в сервисе, в этом случае это значение по умолчанию.
Остановите текущий экземпляр сервера VNC, если он еще запущен.
vncserver -kill :1
Теперь попробуйте запустить его как любой другой сервис systemd:
sudo systemctl start vncserver@1
Чтобы убедиться, что сервер запущен, проверьте его состояние:
sudo systemctl status vncserver@1
vncserver@1.service — Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-10 17:56:17 UTC; 5s ago
Process: 935 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
Process: 940 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS)
Main PID: 948 (Xtightvnc)
. . .
Теперь сервис VNC добавлен в автозагрузку.
Снова запустите SSH туннель:
ssh -L 5901:127.0.0.1:5901 -C -N -l 8host your_server_ip
Создайте новое подключение с клиента VNC на localhost:5901, чтобы протестировать настройку.
Заключение
Теперь на сервере Debian 10 установлен сервер VNC. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).
Источник