Установка vnc4server на Ubuntu Server 18.04 LTS
По умолчанию серверы Ubuntu 18.04 поставляются без предустановленного графического окружения рабочего стола и сервера VNC. Потому сначала нужно установить эти компоненты. Мы будем использовать пакеты xfce4 и vnc4server, доступные в официальном репозитории Ubuntu.
Установка xfce и vnc4server
Сначала устанавливаем пакет xfce4:
$ sudo apt update $ sudo apt install xfce4 xfce4-goodies
Следом за ним — пакет vnc4server:
$ sudo apt install vnc4server
Настройка VNC-сервера
Устанавливаем пароль для доступа к VNC-серверу:
$ vncpasswd Password: пароль Verify: пароль
Пароль будет сохранен в файл ~/.vnc/passwd
. Теперь создадим файл ~/.vnc/xstartup
файл для запуска рабочего стола xfce4:
$ nano ~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Этот файл нужно сделать исполняемым:
$ chmod +x ~/.vnc/xstartup
Запуск VNC-сервера
Теперь можно запустить VNC-сервер:
$ vncserver New 'vnc-server:1 (evgeniy)' desktop is vnc-server:1 Starting applications specified in /home/evgeniy/.vnc/xstartup Log file is /home/evgeniy/.vnc/vnc-server:1.log
Сервер прослушивает порт 5901 (или :1), при запуске еще одного экземпляра сервера — он будет прослушивать порт 5902 (или :2). Посмотреть список серверов, которые запущены в данный момент:
$ ps -ef | grep vnc | awk '{print substr($0, 0, 120)}' evgeniy 29181 1 0 10:29 tty1 00:00:00 Xvnc4 :1 -desktop vnc4server:1 (evgeniy) -auth /home/evgeniy/.Xauthority evgeniy 29309 1 0 10:30 tty1 00:00:00 Xvnc4 :2 -desktop vnc4server:2 (evgeniy) -auth /home/evgeniy/.Xauthority evgeniy 29435 976 0 10:31 tty1 00:00:00 grep --color=auto vnc
Остановить сервер можно командой:
$ vncserver -kill :1
Можно запускать сервер с параметрами:
$ vncserver -depth 24 -geometry 1200x800 :1
Подключение VNC-серверу
На другой машине запускаем VNC-клиент Remmina и подключаемся к серверу:
Перед подключением надо открыть пару портов на той машине, где установлен VNC-сервер, чтобы фаервол не блокировал подключение:
$ sudo ufw allow 5901:5902/tcp
Запуск при загрузке
Теперь нужно настроить сервер VNC как сервис Systemd, чтобы он запускался при загрузке системы. Для этого создаем новый unit-файл:
$ sudo nano /etc/systemd/system/vncserver@.service
Символ @ в конце имени файла позволит нам передать аргумент, который можно использовать в конфигурации сервиса. С его помощью можно указать порт VNC, который нужно использовать при управлении сервисом.
[Unit] Description=Start vnc4server at startup After=syslog.target network.target [Service] Type=forking User=evgeniy Group=evgeniy WorkingDirectory=/home/evgeniy PIDFile=/home/evgeniy/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null ExecStart=/usr/bin/vncserver -depth 24 -geometry 1200x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
Команда ExecStartPre
останавливает VNC, если сервис уже запущен. Команда ExecStart
запускает VNC-сервер, а команда ExecStop
— останавливает. Давайте сообщим системе про новый unit-файл:
$ sudo systemctl daemon-reload
Добавляем две службы в автозагрузку:
$ sudo systemctl enable vncserver@1.service $ sudo systemctl enable vncserver@2.service
Теперь, после загрузки системы, VNC-сервер будет прослушивать порты 5901 и 5902. И мы можем подключиться на любом из них.
Безопасное подключение
При подключении VNC не использует безопасные протоколы. Давайте на машине с VNC-сервером установим SSH-сервер:
$ sudo apt install openssh-server
И откроем 22-ой порт:
$ sudo ufw allow OpenSSH
После чего создадим ssh-туннель от клиента к серверу. Для этого на клиенте выполняем команду:
$ ssh -L 5901:127.0.0.1:5901 evgeniy@192.168.110.17 evgeniy@192.168.110.17's password: пароль Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-72-generic x86_64)
Теперь на клиенте при подключении к VNC-серверу указываем не 192.168.110.17:5901
, а localhost:5901
. Мы как бы подключаемся к локальной машине, но соединение будет проброшено через ssh-туннель на машину с VNC-сервером.
Держать открытыми порты 5901 и 5902 больше не нужно, так что закрываем:
$ sudo ufw delete allow 5901:5902/tcp
Устанавливаем браузер
При подключении у нас есть рабочий стол, файловый менеджер, терминал. Но не хватает браузера, так что давайте установим:
$ sudo apt install firefox
$ sudo apt install firefox-locale-ru
- Создание SSH-туннеля. Часть 4 из 4
- Установка SSH-сервера на Ubuntu 18.04 LTS
- Установка OpenVPN на Ubuntu 18.04 LTS. Часть 11 из 12
- Настройка SFTP-сервера в Ubuntu 18.04 LTS
- Монтирование NFS на сервере Ubuntu 18.04 LTS
- Создание SSH-туннеля. Часть 3 из 4
- Установка DHCP-сервера на Ubuntu Server 18.04 LTS
Поиск: CLI • Linux • SSH • Systemd • Конфигурация • Настройка • Сервер • Установка • VNC • Клиент