VNC-Server ohne X Window System

8

Funktioniert ein VNC-Server ohne installierten X Server? Ich weiß, dass vnc mit X Server funktioniert, aber was ist ohne XNC?

Anonman
quelle
Wenn Sie VNC verwenden möchten, ohne dass X sichtbar auf dem Server gestartet wird, können Sie sich Xvnc ansehen.
Lawrence

Antworten:

7

Nein, normalerweise muss X auf dem Server installiert sein, auf dem Sie VNC verwenden, da lediglich ein X-Desktop von diesem Server angezeigt wird.

Beim Computing ist Virtual Network Computing (VNC) ein grafisches Desktop-Sharing-System, das das Remote Frame Buffer-Protokoll (RFB) verwendet, um einen anderen Computer fernzusteuern. Es überträgt die Tastatur- und Mausereignisse von einem Computer auf einen anderen und leitet die grafischen Bildschirmaktualisierungen über ein Netzwerk in die andere Richtung zurück.

Dieses bisschen könnte die Leute verwirren:

Beachten Sie, dass der Computer, auf dem der VNC-Server ausgeführt wird, keine physische Anzeige haben muss. Bei der normalen Betriebsmethode stellt ein Viewer eine Verbindung zu einem Port auf dem Server her (Standardport 5900).

Wenn sie "Display" erwähnen, sprechen sie von einem physischen Monitor. Auf dem Remote-Server muss X weiterhin installiert und konfiguriert sein, damit GUI-Desktops ausgeführt werden können.

Was ist mit Xvnc, X11vnc und vncserver?

Xvnc

Xvnc ist ein X11-Server, den Sie eigenständig ausführen können. Für den Betrieb ist jedoch weiterhin ein Desktop erforderlich. Andernfalls wird beim Starten nur ein schwarzes Fenster angezeigt. Für Xvnc muss X technisch nicht installiert sein, da es einen eigenen X-Server enthält.

Xvnc ist also wirklich zwei Server in einem. Für die Anwendungen ist es ein X-Server und für die Remote-VNC-Benutzer ist es ein VNC-Server. Konventionell haben wir vereinbart, dass die Anzeigenummer des VNC-Servers mit der Anzeigenummer des X-Servers übereinstimmt, was bedeutet, dass Sie z. snoopy: 2 bezieht sich auf Anzeige 2 auf der Maschine 'snoopy' sowohl in der X-Welt als auch in der VNC-Welt.

Normalerweise starten Sie Xvnc mit dem Skript vncserver, das den Prozess vereinfacht und in Perl geschrieben ist. Möglicherweise möchten Sie dies entsprechend Ihren Vorlieben und örtlichen Gegebenheiten bearbeiten. Wir empfehlen, vncserver zu verwenden, anstatt Xvnc direkt auszuführen. Xvnc bietet jedoch im Wesentlichen dieselben Optionen wie ein Standard-X-Server mit einigen Erweiterungen. Wenn Sie Xvnc -h ausführen, wird eine Liste angezeigt.

$ 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

Wenn Xvnc einen eigenen X-Server enthält, ist dies bei x11vnc nicht der Fall. Es ist ein VNC-Server, der in einen bereits laufenden X-Server, Xvnc oder Xvfb integriert ist. Es hat die einzigartige Eigenschaft, sich mit Dingen verbinden zu können, die einen Framebuffer haben.

Auszug

x11vnc speichert eine Kopie des Frame-Puffers des X-Servers im RAM. Die X11-Programmierschnittstelle XShmGetImage wird zum Abrufen der Bilddaten des Bildpuffers verwendet. x11vnc vergleicht den Frame-Puffer des X-Servers mit seiner Kopie, um festzustellen, welche Pixelbereiche sich geändert haben (und daher an die VNC-Viewer gesendet werden müssen).

Auszug

Es ermöglicht den Remotezugriff von einem Remoteclient auf einen Computer, auf dem eine X Window-Sitzung und die x11vnc-Software gehostet werden, und fragt den Frame-Puffer des X-Servers kontinuierlich nach Änderungen ab. Auf diese Weise kann der Benutzer seinen X11-Desktop (KDE, GNOME, XFCE usw.) von einem Remotecomputer aus entweder im eigenen Netzwerk des Benutzers oder über das Internet steuern, als ob der Benutzer davor sitzen würde. x11vnc kann auch Nicht-X11-Frame-Buffer-Geräte wie Webcams oder TV-Tunerkarten, iPAQ, Neuros OSD, die Linux-Konsole und das Mac OS X-Grafikdisplay abfragen.

x11vnc erstellt keine zusätzliche Anzeige (oder X-Desktop) für die Fernbedienung. Stattdessen wird im Gegensatz zu anderen Linux-Alternativen wie TightVNC Server das vorhandene X11-Display verwendet, das auf dem Monitor eines Unix-ähnlichen Computers in Echtzeit angezeigt wird. Es ist jedoch möglich, Xvnc oder Xvfb zu verwenden, um eine "virtuelle" zusätzliche Anzeige zu erstellen und eine Verbindung mit x11vnc herzustellen, sodass X-11 auf kopflose Server zugreifen kann.

vncserver

vncserver ist nur ein Frontend-Perl-Skript, mit dem sich die Einrichtung von VNC + X auf Remote-Servern, mit denen Sie eine Verbindung mit VNC herstellen, vereinfachen lässt.

Mit vncserver wird ein VNC-Desktop (Virtual Network Computing) gestartet. vncserver ist ein Perl-Skript, das das Starten eines Xvnc-Servers vereinfacht. Es führt Xvnc mit den entsprechenden Optionen aus und startet einen Fenstermanager auf dem VNC-Desktop.

Verweise

slm
quelle
Der Xen-Hypervisor bietet einen VNC-Server für den Zugriff auf das Terminal eines Gastes, ohne dass X auf dem Host oder dem Gast erforderlich ist. Ich denke, es könnte dieses Paket packages.debian.org/wheezy/xcp-vncterm sein . Ich bin mir nicht sicher, ob dies ohne Xen funktionieren würde. Es gibt auch github.com/proxmox/Vncterm, für das X anscheinend nicht erforderlich ist.
StrongBad
Kann das hilfreich sein? github.com/ponty/framebuffer-vncserver
DrunkenMaster
1

Wenn Sie nicht X11 (X) ausführen, sondern den Framebuffer verwenden, gibt es den Framebuffer-vncserver. https://github.com/ponty/framebuffer-vncserver Dies funktioniert gut, mit der Ausnahme, dass keine Eingabe unterstützt wird. Dies lässt sich leicht umgehen, indem Eingaben direkt auf der Serverseite eingegeben werden.

Neil
quelle