Содержание
VNC или Virtual Network Computing — это одна из самых популярных технологий удаленного доступа к рабочему столу, которая используется в Linux. Ранее очень часто для доступа к удаленному рабочему столу в Linux использовался VNC сервер x11vnc, но после перехода Ubuntu на Wayland настройка X11vnc стала сложной. Но у него есть несколько альтернатив, например, TigerVNC, который мы сегодня рассмотрим.
Протокол VNC позволяет делиться рабочим столом, поэтому вам будет необходимо иметь установленное окружение рабочего стола. В редакции Ubuntu для рабочего стола используется окружение Gnome. Но если вы пытаетесь установить программу на сервер, то сначала установите графическую оболочку.
Чтобы установить VNC server в Ubuntu выполните такую команду:
Также необходимо установить эмулятор терминала xterm, его программа будет использовать для запуска тестового окружения:
Для запуска сервера используется команда vncserver. Её синтаксис очень прост:
vncserverпорт:номер_дисплея опции
А вот её основные опции:
- -dry-run — тестовый запуск, не выполнять никаких реальных действий;
- -verbose — включить более подробный вывод;
- -useold — запустить VNC сервер только если он ещё не запущен;
- -cleanstale — очистить оставшиеся файлы после предыдущего запуска;
- -localhost — разрешить подключения только с локального компьютера;
- -name — имя VNC сервера, которое будет отображаться при подключении, по умолчанию используется host:display# (username);
- -geometry — разрешение экрана для запускаемого окружения, например, 1024×768;
- -depth — глубина цвета, доступны значения: 8, 15, 16 и 24;
- -fg — не запускать сервис в фоновом режиме и оставить его привязанным к терминалу;
- -autokill — автоматически останавливать сервер после завершения подключения;
- -xstartup — программа, которую следует использовать вместо оболочки;
- -list — список запущенных серверов;
- -kill — завершить запущенный vnc сервер.
Теперь можно попытаться запустить VNC Server:
При первом запуске утилита предложит вам ввести пароль, который можно будет использовать для подключения к компьютеру, а также ввести пароль для подключения в режиме только просмотр. Последнее можно пропустить. Обратите внимание, что утилиту необходимо запускать от имени обычного пользователя, а не суперпользователя.
Утилита не только создаст конфигурацию, но и запустит VNC сервер. Посмотреть список запущенных серверов можно командой:
Чтобы завершить запущенный VNC сервер используйте опцию kill и идентификатор дисплея, на котором запущен сервер из предыдущей команды:
Мы запускали TigerVNC с рабочем окружением в виде терминала, но теперь нам необходимо полноценное рабочее окружение Gnome. Чтобы его настроить создайте файл ~/.vnc/xstartup со следующим содержимым:
#!/bin/sh dbus-launch --exit-with-session gnome-session &
Это скрипт, который запускает рабочее окружение Gnome, вы также можете запускать и другие окружения. Теперь запущенный VNC сервер появится в списке доступных серверов и вы можете к нему подключиться.
Чтобы показать использование других опций давайте запустим vncserver на четвертом виртуальном дисплее с разрешением экрана 1024×768:
Во-первых, на локальной машине вы можете подключиться к только что запущенному VNC серверу с помощью команды, которую предлагает сам сервер после запуска:
В этой команде мы указываем тип авторизации и передаем файл с паролем, который создали при первом запуске VNC сервера. Перед вами откроется окно удаленного соединения.
Также можно запустить vncviewer Ubuntu без параметров, тогда утилита откроет графический интерфейс, где вам нужно ввести ip адрес машины, на которой запущен сервер, а также номер дисплея или порта:
После этого нужно ввести пароль для подключения и откроется это же окно удаленного соединения:
В этой статье мы рассмотрели как выполняется установка VNC на Ubuntu 18.04, а также как настроить программу для полноценной работы.
- Tigervnc-сервер- это программа, которая запускает сервер Xvnc и запускает параллельные сеансы Mate или другой Desktop Environment на рабочем столе VNC.
Чтобы установить сервер TigerVNC, откройте сеанс терминала и выполните следующую команду с привилегиями root.
# yum install tigervnc-server
- После того, как вы установили программу, войдите в систему под пользователем, под которым вы хотите запустить VNC, и выполните команду, представленную ниже, чтобы настроить пароль для сервера VNC.
Имейте в виду, что пароль должен иметь длину не менее шести символов.
# su your_user # Если вы хотите настроить сервер VNC для запуска под этим пользователем непосредственно из CLI без переключения пользователей из GUI # vncpasswd
- Затем добавьте файл конфигурации службы VNC для своего пользователя с помощью файла конфигурации демона, расположенного в дереве каталогов systemd. Чтобы скопировать файл шаблона VNC, вам нужно запустить следующую команду с привилегиями root.
Если вашему пользователю не предоставляются привилегии sudo, либо переключитесь непосредственно на учетную запись root, либо запустите команду из учетной записи с правами root.
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
- На следующем шаге отредактируйте скопированный файл конфигурации шаблона VNC из каталога /etc/systemd/system/ и замените значения, отражающие вашего пользователя, они выделены жирным в приведенном ниже примере.
Значение 1 после знака @ представляет номер дисплея (порт 5900 + номер дисплея ). Кроме того, для каждого запущенного сервера VNC порт 5900 будет увеличен на 1 .
# nano /etc/systemd/system/vncserver@:1.service
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=test # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/usr/bin/vncserver %i PIDFile=/home/test/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
- Добавьте имя сессии по умолчанию
Для 7.1
</ol>
echo 'PREFERRED="$(type -p mate-session)"' >> /etc/sysconfig/desktop
- Для 7.2
echo 'PREFERRED="$(type -p cinnamon-session)"' >> /etc/sysconfig/desktop
- После того, как вы внесли правильные изменения в файл службы VNC, перезагрузите программу инициализации системы systemd, чтобы получить новый файл конфигурации vnc и запустить сервер TigerVNC.
Также проверьте состояние сервиса VNC и включите его автозагрузку, выполнив приведенные ниже команды.
# systemctl daemon-reload # systemctl start vncserver@:1 # systemctl status vncserver@:1 # systemctl enable vncserver@:1
- Чтобы перечислить открытые порты, принадлежащие VNC-серверу, запустите команду ss, которая используется для отображения сетевых сокетов. Поскольку вы запустили только один экземпляр сервера VNC, первым открытым портом является 5901/TCP .
Опять же, команда ss должна выполняться с привилегиями root. В случае, если вы запускаете другие экземпляры VNC параллельно для разных пользователей, значение порта 5902 будет для второго, 5903 для третьего и так далее. Порты 6000+ используются для того, чтобы X-приложения могли подключаться к серверу VNC.
# ss -tulpn | grep vnc
Подключение к TigerVNC.
Для подключения используйте доступный вам VNC клиент. На Windows можете использовать, например, RealVNC.
Для подключения из РЕД ОС используйте «Remmina».
Выберите протокол VNC, впишите адрес узла и нажмите «Enter».
В открывшемся окне впишите пароль для подключения к VNC, который вы задавали на этапе настройки. Нажмите «Аутентификация»
ВажноПри вводе ip адреса VNC сервера не забудьте указать правильный порт. Например это будет выглядеть так: 192.168.0.24:5901
Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.
В этом руководстве мы рассмотрим, как установить и настроить VNC-сервер на операционной системе CentOS 7.x, чтобы разрешить удаленные подключения с любых VNC-клиентов, таких как TightVNC, RealVNC и других. В частности, мы сделаем это с помощью программного обеспечения TigerVNC Server — бесплатного инструмента, который позволяет пользоваться автономным виртуальным рабочим столом.
Введение
VNC (Virtual Network Computing) представляет собой клиент-серверный протокол, который позволяет клиентскому компьютеру (под управлением клиента VNC) подключаться и управлять удаленным компьютером (работающим на сервере VNC). Программное обеспечение было разработано исследовательской лабораторией Olivetti & Oracle в Кембридже, Великобритания, и его исходный код по-прежнему актуален и доступен под лицензией General Public License (GNU).
В зависимости от программного обеспечения сервера, VNC клиент будет подключаться к активному рабочему столу (например, как программы TeamViewer или AnyDesk) или к автономному виртуальному рабочему столу (как протокол удаленного рабочего стола Windows RDP). Последний, возможно, более мощный и безопасный, особенно если вам необходимо управлять серверным компьютером, потому что каждый сеанс будет уникальной средой, настроенной с разрешениями и правами подключаемого пользователя. Вот почему мы выбираем TigerVNC, который выполняет запуск параллельных сеансов среды рабочего стола компьютера (GNOME, KDE или другой GUI): это значит, что виртуальный рабочий стол будет создан для каждого отдельного подключения — это именно то, чего мы хотим.
Установка TigerVNC
Теперь давайте разберемся, как мы можем установить и настроить TigerVNC в CentOS. Первое, что нужно сделать, это установить программу TigerVNC Server, открыв сеанс терминала и введя следующую команду с правами root:
$ sudo yum install tigervnc-server
Сразу после этого вам необходимо создать отдельного пользователя VNC, с которого и будет осуществляться подключение (с выделенным паролем). Для этого введите следующее:
$ sudo adduser vncuser $ sudo passwd vncuser
Важно: никогда не делайте этого от имени root-пользователя — это создаст серьезную угрозу безопасности вашей системы. Лучшим решением будет оставить пользователя root без доступа к VNC и настроить выделенную учетную запись с ограниченными правами.
После того как вы создали vncuser и задали пароль для входа в систему, вам также необходимо установить уникальный пароль VNC для этого пользователя. Это можно сделать с помощью следующей команды:
$ su - vncuser $ vncpasswd
(первая строка может быть опущена, если мы уже вошли под пользователем vncuser заранее).
Следующее, что нужно сделать, это создать файл конфигурации VNC для vncuser. Самый быстрый способ сделать это — скопировать файл общего шаблона VNC, расположенный в папке /lib/systemd/system/, — и затем изменить его:
$ cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
Цифра «1», которую мы добавили в новое имя файла, — это номер дисплея, который будет использоваться для этого конкретного экземпляра службы. Это важно знать, потому что он также определит порт TCP, который будет использоваться нашим VNC-сервером, равным 5900 + номер дисплея. Первый будет 5901, затем 5902 и так далее.
Сразу после копирования вам нужно отредактировать новый файл с помощью Vi, Nano или другого текстового редактора, и заменить [USER] на имя пользователя, созданного недавно (в нашем случае vncuser). Вот как файл должен выглядеть после обновления (за исключением длинной закомментированной части в начале):
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service]Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -geometry 1280x720" PIDFile=/home/vncuser/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target
Как только вы это сделаете, можете перезагрузить демон VNC и запустить vncserver@1 с помощью следующих команд:
$ systemctl daemon-reload $ systemctl start vncserver@:1
Прежде чем продолжить, проверьте, запущена ли служба, введя команду systemctl status:
$ systemctl status vncserver@:1
и создайте символическую ссылку, чтобы она всегда выполнялась при запуске системы, с помощью следующей команды:
$ systemctl enable vncserver@:1
Еще одна проверка, которую вы можете выполнить, прежде чем пытаться подключиться к серверу, — это посмотреть на активные сетевые сокеты с помощью команды ss: если все работает правильно, вы должны увидеть, что VNC-сервер работает и использует порт TCP 5901. Выполните команду:
$ ss -tulpn| grep vnc
Результат должен быть следующим:
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=38344,fd=9)) tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=38344,fd=6)) tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=38344,fd=10)) tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=38344,fd=5))
Если вы видите это, значит все настроено правильно.
Настройка файрвола
Поскольку наша служба VNC прослушивает порт TCP 5901, вы должны быть уверены, что такой порт открыт и доступен внешним клиентам. Поэтому если у вас установлен брандмауэр, вы должны создать соответствующее правило, позволяющее подключаться клиентам VNC.
Сколько открыть портов, будет зависеть от того, сколько экземпляров VNC-серверов вам понадобится. В нашем сценарии мы сделали только 1, поэтому вам нужно открыть только первый выделенный порт VNC: TCP 5901, как мы уже и говорили. Команда, чтобы открыть этот порт на Firewalld:
# firewall-cmd --add-port = 5901 / tcp # firewall-cmd --add-port = 5901 / tcp --permanent
Не будет лишним упомянуть, что вы также можете ограничить этот порт для определенных групп, IP-адресов, сетевых карт или других простых или сложных правил брандмауэра.
Установка графического интерфейса (GUI)
Если у вас уже есть GNOME, KDE или другие установленные среды рабочего стола, вы можете пропустить этот шаг. В противном случае вам необходимо установить один из них: сервер TigerVNC будет запускать параллельный экземпляр данной среды рабочего стола для каждого сеанса входа в систему, что означает, что у нас должен быть хотя бы один GUI.
GNOME
Если вы хотите действительно отличный, но тяжеловесный интерфейс GNOME, введите следующее:
$ sudo yum groupinstall "GNOME Desktop"
Xfce
Если вам нужна легкая альтернатива, мы можем предложить Xfce — бесплатную среду с открытым исходным кодом для Unix-подобных платформ, которая прекрасно работает с TigerVNC. GNOME также отлично работает, но он довольно ресурсоемкий: если вы хотите сэкономить ресурсы на своей серверной машине, Xfce, возможно, будет лучшим выбором. Чтобы установить его, введите следующее:
$ yum install epel-release $ yum groupinstall xfce
Дополнительные настройки для Xfce
Если вы решили использовать Xfce, вам также потребуется изменить файл, который выполнялся при запуске сеанса VNC. Для этого отредактируйте файл /home//.vnc/xstartup и измените запись exec (обычно строка 4) с etc/X11/xinit/xinitrc на startxfce4, как показано ниже:
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4 vncserver -kill $DISPLAY
Соединение с клиентом VNC
Теперь, когда все настроено, мы можем попытаться подключиться к нашей службе VNC с помощью клиента VNC, такого как TightVNC, UltraVNC или RealVNC, и посмотреть, что произойдет. Не забудьте указать порт TCP 5901 (если вы следовали нашему руководству).
Возможные проблемы
Если ваш клиент не может установить работающее соединение VNC, вам необходимо проверить следующее:
1. Проблемы с соединением — Конфигурация брандмауэра: если вы видите всплывающие ошибки о том, что клиент не может подключиться к удаленному хосту, вам необходимо проверить конфигурацию вашей сети и брандмауэра, чтобы убедиться, что нет проблем с блокировкой, которые могут помешать клиенту подключиться к порту сервера TCP 5901.
2. Черный экран с мышью — обновление YUM или переустановка графического интерфейса: если вы видите черный экран с работающим указателем мыши, это, вероятно, означает, что ваше VNC-соединение работает нормально, но есть что-то, что мешает правильному запуску графического интерфейса рабочего стола. Для исправления:
- Выполните yum update, чтобы установить новейшие версии TigerVNC и самого графического интерфейса. Обязательно следите за любыми возникающими проблемами на этапе установки.
- Удалите и переустановите графический интерфейс, используя команду yum remove / yum group remove и yum groupinstall снова. Если по-прежнему ничего не работает, вы можете попробовать установить другой графический интерфейс.
Облачные VPS/VDS
Создайте сервер всего за 1 минуту!
от8 руб/месяцИспользуемые источники:
- https://losst.ru/ustanovka-vnc-server-v-ubuntu-18-04
- https://redos.red-soft.ru/server-configuring/remote-control/tigervnc/
- https://serverspace.by/support/help/ustanovka-i-nastrojka-vnc-servera-centos-7/