Mobile-Menu

Definition Was ist VNC (Virtual Network Computing)?

Von Dipl.-Ing. (FH) Stefan Luber 5 min Lesedauer

Anbieter zum Thema

VNC ist eine Remote-Desktop-Technologie und -Software, mit der sich der Bildschirminhalt eines entfernten Rechners in Echtzeit auf einem lokalen Rechner anzeigen lässt. Im Gegenzug werden die Tastatur- und Mausbewegungen an den entfernten Rechner übertragen und der Computer wird über ein Netzwerk aus der Ferne bedienbar. VNC funktioniert plattformübergreifend mit allen gängigen Betriebssystemen.

Mit VNC lässt sich ein entfernter Rechner über ein Netzwerk so bedienen, als säße der Anwender direkt vor dem Remote-Computer.(Bild:  Copilot / KI-generiert)
Mit VNC lässt sich ein entfernter Rechner über ein Netzwerk so bedienen, als säße der Anwender direkt vor dem Remote-Computer.
(Bild: Copilot / KI-generiert)

VNC ist das Akronym für Virtual Network Computing. Es handelt sich um eine Software und Technologie für den Fernzugriff auf einen Rechner. Sie zeigt den Bildschirm des entfernten Rechners auf dem lokalen Rechner an und überträgt in Gegenrichtung die Maus- und Tastaturbefehle zur Bedienung des Remote-Computers.

VNC wurde Ende der 1990er Jahre in Cambridge im Olivetti & Oracle Research Lab (ORL) von den späteren Gründern des Unternehmens RealVNC entwickelt und unter GNU General Public License (GPL) als Open Source veröffentlicht.

Auf Protokollebene basiert VNC auf dem Remote Framebuffer Protocol (RFB), das in dem im Jahr 2011 veröffentlichten RFC 6143 spezifiziert ist. VNC gilt als sehr flexibel, offen und kompatibel und ist im Gegensatz zu zahlreichen anderen Remote-Desktop-Lösungen plattformübergreifend mit nahezu allen gängigen Betriebssystemen wie Windows, Linux, macOS, Android, iOS und anderen einsetzbar. Für die verschiedenen Betriebssysteme existieren zahlreiche freie oder kommerzielle VNC-Implementierungen. Bekannte VNC-Implementierungen sind RealVNC, TightVNC, UltraVNC oder x11vnc. Die Implementierungen unterscheiden sich zum Beispiel bei den integrierten Optionen für die Bildschirmspiegelung, für die Verschlüsselung der Daten oder für die Authentifizierung der VNC-Sitzung.

Prinzipielle Funktionsweise von VNC

Virtual Network Computing arbeitet nach dem Client-Server-Modell. Auf dem Computer, der aus der Ferne bedient werden soll, wird ein VNC-Server benötigt. Auf dem lokalen Rechner, von dem aus der Remote-Rechner gesteuert werden soll, ist ein VNC-Client, auch VNC-Viewer genannt, notwendig. Der VNC-Viewer verbindet sich über das Netzwerk mit dem VNC-Server. Der Server erfasst die Bildschirminhalte in Echtzeit und übermittelt sie über das Remote Framebuffer Protocol an den Viewer. Gleichzeitig empfängt er die vom Viewer übertragenen Maus- und Tastatursteuerbefehle und führt sie aus. Aufgabe des VNC-Viewers ist es, die empfangenen Bildschirminformationen des Remote-Rechners lokal darzustellen und lokale Maus- und Tastatureingaben zu erfassen und an den VNC-Server zu übertragen. Durch diese bidirektionale Kommunikation entsteht für den Anwender der Eindruck, als wäre der entfernte Rechner lokal.

Das VNC-Konzept sieht vor, dass VNC-Server entweder die tatsächlichen Bildschirminhalte des Host-Rechners, zum Beispiel zur Anwendungsunterstützung, oder die Bildschirminhalte einer virtuellen Sitzung, vergleichbar mit dem Konzept eines Terminalservers, erfassen und übertragen.

Das für die Übertragung eingesetzte Remote Framebuffer Protocol ist im TCP/IP-Protokollstack auf der Anwendungsebene angesiedelt. RFB gilt als ein auch bei Verbindungen mit geringer Bandbreite effizientes und reaktionsschnelles Protokoll. Auf der Transportschicht verwendet RFB das verbindungsorientierte TCP und den Port 5900 für das Display 0. Für jedes weitere Display wird ein Port höher verwendet (zum Beispiel für das Display 1 der Port 5901 oder für Display 2 der Port 5902). Auf der Internetprotokollebene können sowohl IPv4 als auch IPv6 verwendet werden.

Die verschiedenen Optionen für den Verbindungsaufbau zwischen VNC-Server und VNC-Client

Der klassische Verbindungsaufbau zwischen VNC-Server und VNC-Client sieht vor, dass der VNC-Server auf dem Port 5900 (für Display 0) auf eine vom VNC-Client initiierte Verbindungsanfrage wartet. Befindet sich der Server hinter einer Firewall oder einem NAT-Router, ist es notwendig, eine solche eingehende Verbindung zuzulassen und den Verbindungswunsch entsprechend weiterzuleiten. Ungünstig ist diese Art des Verbindungsaufbaus, wenn ein Anwender aus der Ferne unterstützt werden soll. Er müsste zunächst für die entsprechenden Einstellungen in seiner Netzwerkumgebung sorgen, damit der Support-Mitarbeiter aus der Ferne eine Verbindung zu seinem VNC-Server aufbauen kann.

Um den Konfigurationsaufwand für den Hilfesuchenden so gering wie möglich zu halten, gibt es auch den umgekehrten Weg des Verbindungsaufbaus, auch als Reverse-VNC-Verbindung bezeichnet. Bei dieser Verbindungsmethode lauscht der Client (VNC-Viewer) auf den Verbindungsaufbauwunsch eines VNC-Servers. Auf der Netzwerkseite des Hilfesuchenden sind in dieser Konstellation keine besonderen Einstellungen erforderlich, da ausgehende Verbindungen üblicherweise erlaubt sind.

Eine dritte Verbindungsoption sieht vor, dass sich sowohl VNC-Client als auch VNC-Server mit einem dritten Rechner verbinden, der die beiden dann zu einer VNC-Sitzung zusammenschaltet.

Für alle Verbindungsoptionen ist es notwendig, dass die IP-Adressen beziehungsweise Domainnamen des zu kontaktierenden Rechners bekannt sind. In Umgebungen, in denen keine statischen IP-Adressen, sondern regelmäßig wechselnde IP-Adressen vorhanden sind, wie es zum Beispiel bei Standardinternetanschlüssen im privaten Umfeld üblich ist, kann es sinnvoll sein, über einen DynDNS-Account die wechselnden IP-Adressen immer dem gleichen Domainnamen zuzuordnen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Netzwerktechnik, IP-Kommunikation und UCC

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Sicherheitsaspekte beim Virtual Network Computing

Die Möglichkeit der Steuerung eines Rechners aus der Ferne birgt grundsätzlich ein hohes Sicherheitsrisiko. Deshalb müssen VNC-Remote-Sitzungen gegen unbefugte Nutzung abgesichert werden. Beim Verbindungsaufbauwunsch tauschen Server und Client üblicherweise Authentifizierungsinformationen aus. Häufig genutzt wird beispielsweise die Authentifizierung per Passwort. Es sind aber auch andere Methoden möglich, wie das Einholen einer expliziten Einverständniserklärung des Benutzers am ferngesteuerten Rechner über eine sich öffnende Dialogbox. Einige Implementierungen unterstützen weitergehende Authentifizierungsverfahren wie Microsoft-Logon-Methoden über Verzeichnisdienste.

Ist eine VNC-Verbindung aufgebaut, ist es zudem üblich, dass dies auf dem ferngesteuerten Rechner für die Dauer der Remote-Sitzung angezeigt wird, zum Beispiel über ein Symbol in der Taskleiste. Beendet werden können VNC-Sitzungen zu jeder Zeit sowohl von der Client- als auch von der Serverseite.

Die Übertragung der Daten über das Remote Framebuffer Protocol erfolgt ohne weitere Maßnahmen standardmäßig unverschlüsselt. Das stellt ein weiteres Sicherheitsrisiko dar, da auch sensible Informationen wie Passwörter im Klartext übertragen werden. Es ist daher notwendig, den Datenverkehr zwischen Server und Client zu verschlüsseln. Das kann zum Beispiel über SSL/TLS-Verschlüsselung, SSH-Tunnel oder VPN-Verbindungen erfolgen.

Der aus dem Internet für VNC-Verbindungen erreichbare offene TCP-Port ist ebenfalls ein Sicherheitsrisiko. Es lässt sich durch strenge Zugriffsregeln in einer vorgeschalteten Firewall reduzieren.

Typische Einsatzmöglichkeiten für das Virtual Network Computing

Virtual Network Computing bietet zahlreiche Einsatzmöglichkeiten. Typische Einsatzbereiche sind:

  • Administration, Fernwartung und Zugriff auf Systeme ohne eigenen Monitor (Headless-Betrieb)
  • Anwender und IT-Fernunterstützung
  • Remote-Troubleshooting
  • Fernwartung (zum Beispiel die Installation von Software oder das Einspielen von Patches aus der Ferne)
  • Arbeit im Homeoffice mit Zugriff auf den Bürorechner
  • Team- und Projektarbeit auf gemeinsam genutzten Rechnern oder Servern
  • Zugriff auf Webserver oder in der Cloud gehostete virtuelle Maschinen
  • Zugriff auf Schülerrechner, Tools, Labore oder Software für den Fernunterricht

(ID:50802209)