
В этом руководстве описывается, как установить и настроить VNC-сервер в Debian 9. Мы также покажем вам, как создать SSH-туннель и безопасно подключиться к VNC-серверу.
Виртуальные сетевые вычисления (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
~/.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 и добавить по одному параметру в каждой строке. Вот пример:
~/.vnc/config
geometry=1920x1080 dpi=96
Создание файла модуля Systemd
Файл модуля systemd позволит нам легко запускать, останавливать и перезапускать службу VNC по мере необходимости.
Откройте текстовый редактор, скопируйте и вставьте в него следующую конфигурацию. Не забудьте изменить имя пользователя в строке 7 на своё.
sudo nano /etc/systemd/system/vncserver@.service
/etc/systemd/system/vncserver@.service
[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
Сохраните и закройте файл.
Уведомите systemd о существовании нового файла vncserver@.service , выполнив следующую команду:
sudo systemctl daemon-reload
Далее включаем услугу:
sudo systemctl enable vncserver@1.service
Число 1 после знака @ определяет порт дисплея, на котором будет работать служба VNC. Как мы уже обсуждали в предыдущем разделе, поскольку мы используем 1 VNC-сервер будет прослушивать порт 5901 .
Запустите службу VNC, выполнив:
sudo systemctl start vncserver@1.service
Убедитесь, что служба успешно запущена, выполнив:
sudo systemctl status vncserver@1.service
● vncserver@1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@.service; 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/vncserver@1.service ‣ 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-туннелирование с помощью клиента PuTTY SSH .
Откройте 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 . Вам также потребуется создать новый файл службы, используя другой порт.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
debian vnc Не используете Debian 9?
Выберите другую ОС: центос 7 центос 8 убунту 18.04 убунту 20.04
Связанные руководства
- Как добавить пространство подкачки в Debian 9
- Как установить Apache Maven на Debian 9
- Как настроить FTP-сервер с VSFTPD в Debian 9
- Как установить и настроить Redis в Debian 9
- Как установить Tomcat 9 на Debian 9
- Как установить Django на Debian 9 Linux
- Как установить и защитить phpMyAdmin с помощью Apache в Debian 9