Setting up VNC Server on your Raspberry Pi
Оглавление:
- Предпосылки
- Установка рабочего стола
- Установка VNC-сервера
- Настройка VNC-сервера
- Создание файла модуля Systemd
- Подключение к VNC серверу
- Настройка SSH-туннелирования в Linux и macOS
- Настройка SSH-туннелирования в Windows
- Вывод
В этом руководстве описывается, как установить и настроить 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
запуске команды
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 / конфигурации
Создание файла модуля Systemd
Файл системного модуля позволит нам легко запускать, останавливать и перезапускать службу VNC по мере необходимости.
Откройте текстовый редактор, скопируйте и вставьте в него следующую конфигурацию. Не забудьте изменить имя пользователя в строке 7, чтобы оно соответствовало вашему имени пользователя.
sudo nano /etc/systemd/system/[email protected]
/etc/systemd/system/[email protected]
Description=Remote desktop service (VNC) After=syslog.target network.target 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 WantedBy=multi-user.target
Сохраните и закройте файл.
Сообщите 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
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Вам будет предложено ввести пароль пользователя.
Не забудьте заменить
username
и
server_ip_address
своим именем пользователя и IP-адресом вашего сервера.
Настройка SSH-туннелирования в Windows
Откройте Putty и введите IP-адрес вашего сервера в поле
Host name or IP address
.




На данный момент вы успешно подключились к вашему серверу через VNC. Теперь вы можете начать взаимодействие с удаленным рабочим столом XFCE с локального компьютера с помощью клавиатуры и мыши.
Вывод
К настоящему времени у вас должен быть запущен и запущен VNC-сервер, и вы можете легко управлять своим сервером Debian 9 с локального компьютера с помощью графического интерфейса.
Чтобы настроить VNC-сервер на запуск отображения для более чем одного пользователя, создайте начальную конфигурацию и задайте пароль с помощью команды
vncserver
. Вам также нужно будет создать новый файл сервиса, используя другой порт.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Debian VNCКак установить и настроить Redis на Debian 10 Linux
В этом руководстве мы расскажем, как установить и настроить Redis на Debian 10, Buster. Redis - это хранилище данных значения ключа в памяти с открытым исходным кодом.
Как установить и настроить vnc на centos 7
В этом руководстве мы расскажем вам, как установить и настроить VNC-сервер в системе CentOS 7. Мы также покажем вам, как безопасно подключиться к серверу VNC через туннель SSH.
Как установить и настроить vnc на Ubuntu 18.04
В этом руководстве описаны шаги, необходимые для установки и настройки VNC-сервера в системе Ubuntu 18.04. Мы также покажем вам, как безопасно подключиться к серверу VNC через туннель SSH.







