В этом руководстве описывается, как установить и настроить сервер VNC в Debian 9. Мы также покажем вам, как создать туннель SSH и безопасно подключиться к серверу VNC.
Virtual Network Computing (VNC) — это графическая система совместного использования рабочего стола, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером.
Содержание
Подготовка
Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установка среды рабочего стола
Скорее всего, на вашем сервере Debian не будет установлена среда рабочего стола. Наш первый шаг — установить легкую среду рабочего стола.
В репозиториях Debian доступно несколько окружений рабочего стола (DE). Мы будем использовать Xfce в качестве предпочтительной среды рабочего стола. Он быстрый, стабильный и легкий, что делает его идеальным для использования на удаленном сервере.
Обновите индекс пакетов и установите Xfce на свой сервер Debian с помощью следующих команд:
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
В зависимости от вашей системы загрузка и установка пакетов Xfce может занять некоторое время.
Установка VNC-сервера
В репозиториях Debian также есть несколько различных серверов VNC, таких как TightVNC , TigerVNC и x11vnc . Каждый сервер VNC имеет свои сильные и слабые стороны с точки зрения скорости и безопасности.
Мы будем использовать TigerVNC, который является активно поддерживаемым высокопроизводительным сервером VNC. Чтобы установить TigerVNC на ваш сервер Debian, выполните следующую команду:
sudo apt install tigervnc-standalone-server tigervnc-common
После установки сервера VNC запустите команду vncserver
чтобы создать начальную конфигурацию и установить пароль. Не используйте sudo при выполнении следующей команды:
vncserver
Вам будет предложено ввести и подтвердить пароль, а также указать, следует ли установить его как пароль только для просмотра. Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры.
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth: file /home/linuxize/.Xauthority does not exist
New 'debian9.localdomain:1 (linuxize)' desktop at :1 on machine debian9.localdomain
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/debian9.localdomain:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.
Когда вы запускаете команду vncserver
в первый раз, она создаст и сохранит файл паролей в каталоге ~/.vnc
.
Обратите внимание на :1
после имени хоста в выходных данных выше. Это указывает номер порта дисплея, на котором работает сервер vnc. В нашем случае сервер работает на TCP-порту 5901
(5900 + 1). Если вы создадите второй экземпляр с vncserver
он будет работать на следующем свободном порту, например :2
, что означает, что сервер работает на порту 5902
(5900 + 2).
Важно отметить, что при работе с серверами VNC :X
— это порт дисплея, который относится к 5900+X
Перед тем как перейти к следующему шагу, остановите экземпляр VNC с помощью команды vncserver
с параметром -kill
и номером сервера в качестве аргумента. В этом случае сервер работает на порту 5901 ( :1
), поэтому мы остановим его с помощью:
vncserver -kill :1
Killing Xtigervnc process ID 6677... success!
Настройка VNC-сервера
Теперь, когда на машине установлены и Xfce, и TigerVNC, нам нужно настроить TigerVNC для использования Xfce. Для этого создайте следующий файл:
nano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
После этого сохраните и закройте файл. Приведенный выше сценарий будет автоматически выполняться при каждом запуске или перезапуске сервера TigerVNC.
~/.vnc/xstartup
также должен иметь разрешения на выполнение. Выполните следующую команду chmod
чтобы убедиться, что разрешения верны:
chmod u+x ~/.vnc/xstartup
Если вам нужно передать дополнительные параметры на сервер VNC, вы можете создать файл с именем config
и добавить по одному параметру в каждой строке. Вот пример:
geometry=1920x1080
dpi=96
Создание файла модуля Systemd
Файл модуля systemd позволит нам легко запускать, останавливать и перезапускать службу VNC по мере необходимости.
Откройте текстовый редактор, скопируйте и вставьте в него следующую конфигурацию. Не забудьте изменить имя пользователя в строке 7, чтобы оно соответствовало вашему имени пользователя.
sudo nano /etc/systemd/system/[email protected]
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Сохраните и закройте файл.
Notify Systemd что новый [email protected]
файл существует , выполнив следующую команду:
sudo systemctl daemon-reload
Затем включите службу:
sudo systemctl enable [email protected]
Число 1
после знака @
определяет порт дисплея, на котором будет работать служба VNC. Как мы обсуждали в предыдущем разделе, поскольку мы используем 1
сервер VNC будет прослушивать порт 5901
.
Запустите службу VNC, выполнив:
sudo systemctl start [email protected]
Убедитесь, что служба успешно запущена:
sudo systemctl status [email protected]
● [email protected] - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-10-03 05:23:33 PDT; 51s ago
Process: 7063 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 7071 (vncserver)
Tasks: 0 (limit: 4915)
CGroup: /system.slice/system-vncserver.slice/[email protected]
‣ 7071 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg
Подключение к VNC-серверу
VNC не является зашифрованным протоколом и может подвергаться перехвату пакетов. Рекомендуемый подход — создать туннель SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер на том же порту.
Настроить SSH-туннелирование в Linux и macOS
Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель SSH с помощью команды ssh
:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Вам будет предложено ввести пароль пользователя.
Не забудьте заменить 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
. Вам также необходимо будет создать новый служебный файл, используя другой порт.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.