VNC-сервер без X Window System

VNC-сервер без X Window System

Будет ли работать VNC-сервер без установленного X-сервера? Я знаю, что vnc работает с X-сервером, но как быть без него?

решение1

Нет, вам, как правило, понадобится установить X на сервере, к которому вы подключаетесь удаленно с помощью VNC, поскольку он просто отображает рабочий стол X с этого сервера.

В вычислительной технике Virtual Network Computing (VNC) — это графическая система совместного использования рабочего стола, которая использует протокол Remote Frame Buffer (RFB) для удаленного управления другим компьютером. Она передает события клавиатуры и мыши с одного компьютера на другой, ретранслируя графические обновления экрана обратно в обратном направлении, по сети.

Вот что может сбить людей с толку:

Обратите внимание, что машина, на которой запущен VNC-сервер, не обязательно должна иметь физический дисплей. При обычном методе работы зритель подключается к порту на сервере (порт по умолчанию 5900).

Когда они упоминают "Display", они говорят о физическом мониторе. Удаленный сервер все еще требует установки и настройки X, чтобы можно было запускать рабочие столы с графическим интерфейсом.

А как насчет Xvnc, X11vnc и vncserver?

Xvnc

Xvncэто сервер X11, который можно запустить автономно, но для его работы все равно потребуется рабочий стол, иначе при запуске вы увидите просто черное окно. Так что Xvnc технически не требует установки X, поскольку он содержит свой собственный сервер X.

Итак, Xvnc на самом деле представляет собой два сервера в одном. Для приложений это X-сервер, а для удаленных пользователей VNC это VNC-сервер. По соглашению мы договорились, что номер дисплея VNC-сервера будет таким же, как номер дисплея X-сервера, что означает, что вы можете использовать, например, snoopy:2 для ссылки на дисплей 2 на машине 'snoopy' как в мире X, так и в мире VNC.

Обычно вы запускаете Xvnc с помощью скрипта vncserver, который разработан для упрощения процесса и написан на Perl. Вероятно, вы захотите отредактировать его в соответствии со своими предпочтениями и локальными условиями. Мы рекомендуем использовать vncserver вместо того, чтобы запускать Xvnc напрямую, но Xvnc по сути имеет те же параметры, что и стандартный X-сервер, с несколькими расширениями. Запуск Xvnc -h отобразит список.

$ export DISPLAY=localhost:1.0
$ /usr/bin/Xvnc :1 -ac -auth "/root/.Xauthority" \
    -geometry "1200x700" -depth 8 -rfbwait 120000 \
    -rfbauth /root/.vnc/passwd 2> /root/.vnc/ServerDaemon.log &
$ /bin/sleep 10
$ /usr/bin/fvwm 2> /root/.vnc/fvwm.log &
x11vnc

Где Xvnc содержит свой собственный X-сервер,x11vncнет. Это VNC-сервер, который интегрируется с уже работающим X-сервером, Xvnc или Xvfb. У него есть уникальная возможность подключаться к вещам, имеющим фреймбуфер.

выдержка

x11vnc хранит копию кадрового буфера X-сервера в оперативной памяти. Программный интерфейс X11 XShmGetImage используется для извлечения данных пикселей кадрового буфера. x11vnc сравнивает кадровый буфер X-сервера с его копией, чтобы увидеть, какие области пикселей изменились (и, следовательно, должны быть отправлены средствам просмотра VNC).

выдержка

Он позволяет удаленному клиенту получить доступ к компьютеру, на котором размещен сеанс X Window и программное обеспечение x11vnc, непрерывно опрашивая кадровый буфер X-сервера на предмет изменений. Это позволяет пользователю управлять своим рабочим столом X11 (KDE, GNOME, XFCE и т. д.) с удаленного компьютера либо в собственной сети пользователя, либо через Интернет, как если бы пользователь сидел перед ним. x11vnc также может опрашивать устройства с кадровым буфером, отличные от X11, такие как веб-камеры или карты ТВ-тюнера, iPAQ, Neuros OSD, консоль Linux и графический дисплей Mac OS X.

x11vnc не создает дополнительный дисплей (или рабочий стол X) для удаленного управления. Вместо этого он использует существующий дисплей X11, отображаемый на мониторе Unix-подобного компьютера в реальном времени, в отличие от других альтернатив Linux, таких как TightVNC Server. Однако можно использовать Xvnc или Xvfb для создания «виртуального» дополнительного дисплея и подключить x11vnc к нему, что обеспечивает доступ X-11 к headless-серверам.

vncсервер

vncserver— это всего лишь интерфейсный скрипт Perl, который помогает упростить настройку VNC + X на удаленных серверах, к которым вы будете подключаться с помощью VNC.

vncserver используется для запуска рабочего стола VNC (Virtual Network Computing). vncserver — это скрипт Perl, который упрощает процесс запуска сервера Xvnc. Он запускает Xvnc с соответствующими параметрами и запускает оконный менеджер на рабочем столе VNC.

Рекомендации

решение2

Если вы не используете X11 (X), но используете фреймбуфер, есть framebuffer-vncserver.https://github.com/ponty/framebuffer-vncserver Это работает хорошо, за исключением того, что не поддерживает ввод. Это легко обойти, напрямую внедряя ввод на стороне сервера.

Связанный контент