VNC (терминальный, если угодно) доступ к машине на Linux, особенно когда эта машина используется в качестве сервера, в некоторых случаях намного предпочтительней ssh доступа. Поэтому для внутренних серверов я практически всегда настраиваю доступ по VNC.
Я реализую вариант работы через сервер xinetd, который прослушивает стандартный для VNC сессий порт 5900. При попытке соединения на этот порт xinetd запустит сервер VNC, а по завершению соединения закроет сервер и все программы. Таким образом при отсутствии активных соединений сервер и программы не будут висеть в памяти. Получится такой вот "терминальный" сервер.
Установка программ
В Debian предлагают на выбор два варианта VNC севера:
Я воспользуюсь последним.
Помимо VNC-сервера, потребуются сам xinetd и менеджер дисплеев, в моём случае это LightDM, поскольку я использую XFCE, а kdm и gdm тянут за собой просто тонны зависимостей KDE и Gnome соответственно.
Перво-наперво прописывает запуск супер-сервера при старте системы:
service vnc - название сервера, мы можем сделать несколько VNC-серверов с разными параметрами;
server - путь к двоичному файлу который супер-сервер будет вызывать;
server_args - это аргументы с которыми будет сервер вызываться;
port - ну и порт который суперсервер будет слушать.
С какими же параметрами будут запускаться сессии VNC-сервера:
inetd - обязательный параметр для сервера VNC, сигнализирующий о том, что он запускается под управлением xinetd;
once - параметр выключающий VNC-сервер по завершению сессии;
query localhost - параметр указывающий что авторизация будет проводиться на локальной для VNC-сервере машине;
geometry - размер экрана для сессии, устанавливается из соображений удобства клиента и никак не зависит от уставленного в настройках сервера разрешения.
depth - глубина цвета от 2 до 32 bit. Меньше 16-ти появляются искажения цветов, для работы в локальной сети меньше ставить смысла нет.
Эти параметры относятся именно к используемому VNC серверу, так что их список может меняться от версии и выбранного сервера.
Настройка менеджера дисплеев LightDM
Необходимо активировать функцию XDMCP сервера в настройках менеджера дисплея, чтобы он мог авторизовывать удаленно подключающихся пользователей, а не только пользователей локальной консоли. Для этого раскомментрируем и изменим значение параметра в блоке [XDMCPServer] файла /etc/lightdm/lightdm.conf, приведя блок к виду:
Для этого выполняем команды:
Если возникли вопросы или замечания, вы как всегда можете прислать их мне на электронную почту kpa39l@yandex.ru
Я реализую вариант работы через сервер xinetd, который прослушивает стандартный для VNC сессий порт 5900. При попытке соединения на этот порт xinetd запустит сервер VNC, а по завершению соединения закроет сервер и все программы. Таким образом при отсутствии активных соединений сервер и программы не будут висеть в памяти. Получится такой вот "терминальный" сервер.
Установка программ
В Debian предлагают на выбор два варианта VNC севера:
- vnc4server
- tightvncserver
Я воспользуюсь последним.
Помимо VNC-сервера, потребуются сам xinetd и менеджер дисплеев, в моём случае это LightDM, поскольку я использую XFCE, а kdm и gdm тянут за собой просто тонны зависимостей KDE и Gnome соответственно.
sudo aptitude install tightvncserver xinetd lightdmНастройка xinetd
Перво-наперво прописывает запуск супер-сервера при старте системы:
sudo systemctl enable xinetdДля всех серверов которыми должен управлять xinetd в каталоге /etc/xinetd.d/ создаются конфигурационные файлы. Создадим такой файл для VNC-сервера:
sudo nano /etc/xinetd.d/vncсо следующим содержимым:
service vncгде
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -once -query localhost -geometry 1024x768 -depth 16
type = UNLISTED
port = 5900
}
service vnc - название сервера, мы можем сделать несколько VNC-серверов с разными параметрами;
server - путь к двоичному файлу который супер-сервер будет вызывать;
server_args - это аргументы с которыми будет сервер вызываться;
port - ну и порт который суперсервер будет слушать.
С какими же параметрами будут запускаться сессии VNC-сервера:
inetd - обязательный параметр для сервера VNC, сигнализирующий о том, что он запускается под управлением xinetd;
once - параметр выключающий VNC-сервер по завершению сессии;
query localhost - параметр указывающий что авторизация будет проводиться на локальной для VNC-сервере машине;
geometry - размер экрана для сессии, устанавливается из соображений удобства клиента и никак не зависит от уставленного в настройках сервера разрешения.
depth - глубина цвета от 2 до 32 bit. Меньше 16-ти появляются искажения цветов, для работы в локальной сети меньше ставить смысла нет.
Эти параметры относятся именно к используемому VNC серверу, так что их список может меняться от версии и выбранного сервера.
Настройка менеджера дисплеев LightDM
Необходимо активировать функцию XDMCP сервера в настройках менеджера дисплея, чтобы он мог авторизовывать удаленно подключающихся пользователей, а не только пользователей локальной консоли. Для этого раскомментрируем и изменим значение параметра в блоке [XDMCPServer] файла /etc/lightdm/lightdm.conf, приведя блок к виду:
[XDMCPServer]Перезапуск серверов с новыми параметрами
enabled=true
port=177
#key=
Для этого выполняем команды:
sudo /etc/init.d/xinetd restartВсё, теперь есть доступ к серверу по протоколу VNC. Правда мы еще не предпринимали никаких мер по обеспечению безопасности, прошу учесть что протокол VNC относится к небезопасным, поэтому будет продолжение.
sudo /etc/init.d/lightdm restart
Если возникли вопросы или замечания, вы как всегда можете прислать их мне на электронную почту kpa39l@yandex.ru
Комментариев нет:
Отправить комментарий