VNC-Server ohne X Window System

VNC-Server ohne X Window System

Funktioniert ein VNC-Server auch ohne installierten X-Server? Ich weiß, dass VNC mit dem X-Server funktioniert, aber wie ist es ohne?

Antwort1

Nein, normalerweise muss X auf dem Server installiert sein, auf den Sie per VNC eine Remoteverbindung herstellen, da lediglich ein X-Desktop von diesem Server angezeigt wird.

In der Computerbranche ist Virtual Network Computing (VNC) ein grafisches Desktop-Sharing-System, das das Remote Frame Buffer-Protokoll (RFB) zur Fernsteuerung eines anderen Computers verwendet. Es überträgt die Tastatur- und Mausereignisse von einem Computer zum anderen und leitet die grafischen Bildschirmaktualisierungen über ein Netzwerk in die andere Richtung zurück.

Folgendes könnte die Leute verwirren:

Beachten Sie, dass die Maschine, auf der der VNC-Server läuft, kein physisches Display haben muss. Im Normalbetrieb stellt ein Viewer eine Verbindung zu einem Port auf dem Server her (Standardport 5900).

Wenn sie „Anzeige“ erwähnen, meinen sie einen physischen Monitor. Der Remote-Server erfordert weiterhin, dass X installiert und konfiguriert ist, damit GUI-Desktops ausgeführt werden können.

Was ist mit Xvnc, X11vnc und vncserver?

Xvnc

Xvncist ein X11-Server, den Sie eigenständig ausführen können, für den Betrieb ist jedoch trotzdem ein Desktop erforderlich, da Sie beim Starten sonst nur ein schwarzes Fenster sehen. Xvnc erfordert also technisch gesehen keine X-Installation, da es einen eigenen X-Server enthält.

Xvnc ist also eigentlich 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 festgelegt, dass die Anzeigenummer des VNC-Servers dieselbe ist wie die Anzeigenummer des X-Servers. Das bedeutet, dass Sie z. B. snoopy:2 verwenden können, um sowohl in der X-Welt als auch in der VNC-Welt auf Anzeige 2 auf dem Computer „snoopy“ zu verweisen.

Normalerweise starten Sie Xvnc mit dem Skript vncserver, das den Vorgang vereinfachen soll und in Perl geschrieben ist. Sie möchten es wahrscheinlich Ihren Wünschen und lokalen Bedingungen entsprechend bearbeiten. Wir empfehlen die Verwendung von vncserver, anstatt Xvnc direkt auszuführen, aber Xvnc hat 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

Wo Xvnc seinen eigenen X-Server enthält,x11vncnicht. Es handelt sich um einen VNC-Server, der sich in einen bereits laufenden X-Server, Xvnc oder Xvfb integrieren lässt. Er hat die einzigartige Funktion, dass er sich mit Dingen verbinden kann, die einen Framebuffer haben.

Auszug

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

Auszug

Es ermöglicht den Fernzugriff von einem Remote-Client auf einen Computer, auf dem eine X Window-Sitzung und die x11vnc-Software gehostet werden, und fragt den Frame-Buffer des X-Servers kontinuierlich nach Änderungen ab. Auf diese Weise kann der Benutzer seinen X11-Desktop (KDE, GNOME, XFCE usw.) von einem Remote-Computer aus steuern, entweder im eigenen Netzwerk des Benutzers oder über das Internet, als säße der Benutzer direkt davor. x11vnc kann auch Frame-Buffer-Geräte abfragen, die nicht X11-fähig sind, wie Webcams oder TV-Tunerkarten, iPAQ, Neuros OSD, die Linux-Konsole und die Grafikanzeige von Mac OS X.

x11vnc erstellt kein zusätzliches Display (oder X-Desktop) für die Fernsteuerung. Stattdessen verwendet es das vorhandene X11-Display, das in Echtzeit auf dem Monitor eines Unix-ähnlichen Computers angezeigt wird, im Gegensatz zu anderen Linux-Alternativen wie TightVNC Server. Es ist jedoch möglich, mit Xvnc oder Xvfb ein „virtuelles“ zusätzliches Display zu erstellen und x11vnc damit zu verbinden, wodurch X-11-Zugriff auf Headless-Server ermöglicht wird.

vncserver

vncserverist lediglich ein Perl-Frontend-Skript, das die komplexe Einrichtung von VNC + X auf Remote-Servern, zu denen Sie eine Verbindung per VNC herstellen, vereinfacht.

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

Verweise

Antwort2

Wenn Sie nicht X11 (X) ausführen, sondern den Framebuffer verwenden, gibt es 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 die Eingabe direkt auf der Serverseite eingefügt wird.

verwandte Informationen