Serveur VNC sans système X Window

Un server VNC fonctionnera-t-il sans l'installation de X Server? Je sais que vnc fonctionne avec X Server, mais qu'en est-il sans?

Non, vous aurez généralement besoin de X installé sur le server que vous utilisez pour utiliser VNC, car il affiche simplement un bureau X en arrière de ce server.

En informatique, le Virtual Network Computing (VNC) est un système graphique de partage de bureau qui utilise le protocole RFB (Remote Frame Buffer) pour contrôler à distance un autre ordinateur. Il transmet les events keyboard et souris d'un ordinateur à l'autre, relayant l'écran graphique dans l'autre direction, sur un réseau.

Ce bit pourrait être ce qui confond les gens:

Notez que la machine sur laquelle le server VNC fonctionne n'a pas besoin d'avoir un affichage physique. Dans la méthode normale de fonctionnement, un spectateur se connecte à un port sur le server (port par défaut 5900).

Quand ils mentionnent "Display", ils parlent d'un moniteur physique. Le server distant requirejs toujours que X soit installé et configuré pour que les posts de travail GUI puissent être exécutés.

Qu'en est-il de Xvnc, X11vnc et vncserver?

Xvnc

Xvnc est un server X11 que vous pouvez exécuter en mode autonome, mais il nécessitera toujours un ordinateur de bureau pour le faire fonctionner, sinon, lorsque vous le lancerez, vous ne verrez qu'une window noire. Donc Xvnc n'exige pas techniquement que X soit installé puisqu'il contient son propre server X.

Donc Xvnc est vraiment deux servers en un. Pour les applications, il s'agit d'un server X et pour les users VNC distants, il s'agit d'un server VNC. Par convention, nous avons prévu que le numéro d'affichage du server VNC sera le même que le numéro d'affichage du server X, ce qui signifie que vous pouvez utiliser par exemple. snoopy: 2 pour se référer à l'affichage 2 sur la machine 'snoopy' dans le monde X et le monde VNC.

Normalement, vous allez démarrer Xvnc en utilisant le script vncserver, qui est conçu pour simplifier le process, et qui est écrit en Perl. Vous voudrez probablement modifier cela en fonction de vos preferences et des conditions locales. Nous recommandons d'utiliser vncserver plutôt que d'exécuter Xvnc directement, mais Xvnc a essentiellement les mêmes options qu'un server X standard, avec quelques extensions. Exécuter Xvnc -h affichera une list.

$ 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

Où Xvnc contient son propre server X, x11vnc ne le fait pas. C'est un server VNC qui s'intègre à un server X déjà en cours d'exécution, Xvnc ou Xvfb. Il a la particularité d'être en mesure de se connecter à des choses qui ont un framebuffer.

extrait

x11vnc conserve une copy du tampon d'image du server X dans la RAM. L'interface de programmation X11 XShmGetImage est utilisée pour extraire datatables de pixel de la memory image. x11vnc compare le tampon de trame du server X à sa copy pour voir quelles régions de pixels ont changé (et doivent donc être envoyées aux visionneuses VNC).

extrait

Il permet l'access à distance d'un client distant à un ordinateur hébergeant une session X Window et le logiciel x11vnc, interrogeant en permanence le tampon d'images du server X pour y détecter les modifications. Cela permet à l'user de contrôler son bureau X11 (KDE, GNOME, XFCE, etc.) à partir d'un ordinateur distant, soit sur le réseau de l'user, soit sur Internet comme si l'user était assis devant. x11vnc peut également interroger des périphériques de tampon d'images non-X11, tels que les webcams ou les maps tuner TV, iPAQ, Neuros OSD, la console Linux et l'affichage graphique Mac OS X.

x11vnc ne crée pas d'affichage supplémentaire (ou X desktop) pour le contrôle à distance. Au lieu de cela, il utilise l'affichage X11 existant affiché sur le moniteur d'un ordinateur de type Unix en time réel, contrairement à d'autres alternatives Linux telles que TightVNC Server. Cependant, il est possible d'utiliser Xvnc ou Xvfb pour créer un affichage supplémentaire 'virtuel' et y avoir une connection x11vnc, ce qui permet l'access X-11 aux servers sans tête.

vncserver

vncserver est juste un script Perl qui facilite la configuration de VNC + X sur les servers distants sur lesquels vous utiliserez VNC pour vous connecter.

vncserver est utilisé pour démarrer un bureau VNC (Virtual Network Computing). vncserver est un script Perl qui simplifie le process de démarrage d'un server Xvnc. Il exécute Xvnc avec les options appropriées et démarre un gestionnaire de windows sur le bureau VNC.

Les references

  • Virtual Network Computing – Wikipédia

Si vous n'utilisez pas X11 (X) mais que vous utilisez le framebuffer, il y a framebuffer-vncserver. https://github.com/ponty/framebuffer-vncserver Cela fonctionne bien, à l'exception du fait qu'il ne supporte pas les inputs. Ceci est facile à contourner, en injectant directement des inputs du côté server.