

VNC ( Virtual Network Computing ) ist ein System zur grafischen Bildschirmübertragung, das das Remote Frame Buffer ( RFB )-Protokoll nutzt, um einen anderen Computer fernzusteuern . Es überträgt die Eingaben von Tastatur und Maus über ein Netzwerk von einem Computer zum anderen und leitet dabei die Aktualisierungen des Bildschirms weiter . [ 1 ] Häufige Anwendungsbereiche dieser Technologie sind der technische Support aus der Ferne und der Zugriff auf Dateien auf dem Arbeitscomputer vom Heimcomputer aus oder umgekehrt.
VNC ist plattformunabhängig und bietet Clients und Server für viele GUI-basierte Betriebssysteme sowie für Java . Mehrere Clients können sich gleichzeitig mit einem VNC-Server verbinden. Es existieren verschiedene VNC-Varianten [ 2 ] , die jeweils eigene Funktionen bieten; beispielsweise optimierte Versionen für Microsoft Windows oder solche, die Dateiübertragung ermöglichen (was nicht zum eigentlichen VNC gehört). Viele sind (ohne ihre zusätzlichen Funktionen) mit dem Standard-VNC kompatibel, sodass ein Client einer Variante eine Verbindung zu einem Server einer anderen herstellen kann; andere basieren zwar auf dem VNC-Code, sind aber nicht mit dem Standard-VNC kompatibel.
VNC wurde ursprünglich im Olivetti & Oracle Forschungslabor in Cambridge, Großbritannien, entwickelt. Die Entwickler gründeten später RealVNC Ltd. und ließen VNC und RFB in den USA und einigen anderen Ländern als eingetragene Marken sichern . Der ursprüngliche VNC- Quellcode und viele moderne Derivate sind unter der GNU General Public License (GPL) als Open Source verfügbar .
Geschichte
Das Olivetti & Oracle Research Lab (ORL) [ 3 ] in Cambridge, Großbritannien, entwickelte VNC zu einer Zeit, als das Labor von Olivetti und der Oracle Corporation betrieben wurde. Zu den Entwicklern, die während ihrer Zeit im AT&T Research Lab an VNC arbeiteten, gehörten Tristan Richardson (Erfinder), Andy Harter (Projektleiter), Quentin Stafford-Fraser , James Weatherall und Andy Hopper . [ 4 ] Der Name Virtual Network Computer/Computing (VNC) entstand im Zusammenhang mit der Arbeit des ORL an einem Thin Client namens Videotile, der ebenfalls das RFB-Protokoll nutzte . Der Videotile verfügte über ein LCD-Display mit Stifteingabe und eine schnelle ATM- Verbindung zum Netzwerk. Damals wurde der Begriff Netzwerkcomputer häufig synonym für Thin Client verwendet; VNC ist im Wesentlichen ein rein softwarebasierter (d. h. virtueller) Netzwerkcomputer.
1999 erwarb AT&T das Labor und stellte 2002 dessen Forschungsaktivitäten ein. Daraufhin gründeten mehrere Mitglieder des Entwicklerteams (darunter Richardson, Harter, Weatherall und Hopper) RealVNC, um unter diesem Namen weiterhin an Open-Source- und kommerzieller VNC-Software zu arbeiten. Seit 2013 beansprucht RealVNC Ltd. den Begriff „VNC“ als eingetragene Marke in den Vereinigten Staaten und anderen Ländern. [ 5 ]
Der ursprüngliche, unter der GPL lizenzierte Quellcode floss in mehrere andere VNC-Versionen ein. Diese Abspaltung führte nicht zu Kompatibilitätsproblemen, da das RFB-Protokoll erweiterbar konzipiert ist. VNC-Clients und -Server verhandeln ihre Fähigkeiten mittels Handshake , um die jeweils am besten geeigneten, von beiden Seiten unterstützten Optionen zu nutzen.
Konstruktion und Betrieb
Der VNC -Server ist das Programm auf dem Rechner, das einen Teil des Bildschirms freigibt (und nicht unbedingt mit einem physischen Bildschirm verbunden sein muss: der Server kann „headless“ sein ) und dem Client die gemeinsame Steuerung ermöglicht. Der VNC- Client (oder Viewer) ist das Programm, das die vom Server kommenden Bildschirmdaten darstellt, Aktualisierungen von ihm empfängt und ihn vermutlich steuert, indem er dem Server die erfassten lokalen Eingaben mitteilt. Das VNC- Protokoll ( RFB-Protokoll ) ist sehr einfach und basiert auf der Übertragung eines grafischen Primitivs vom Server an den Client („Platziere ein Rechteck mit Pixeldaten an der angegebenen X,Y-Position“) und von Ereignismeldungen vom Client an den Server.
Im Normalbetrieb verbindet sich ein Betrachter mit einem Port des Servers (Standardport: 5900). Alternativ (je nach Implementierung) kann ein Browser die Verbindung zum Server herstellen (Standardport: 5800). Ein Server kann sich im „Listening-Modus“ über Port 5500 mit einem Betrachter verbinden. Ein Vorteil des Listening-Modus ist, dass der Server seine Firewall nicht für den Zugriff auf Port 5900 (oder 5800) konfigurieren muss; diese Aufgabe übernimmt der Betrachter. Dies ist besonders nützlich, wenn der Server über keine IT-Kenntnisse verfügt und der Betrachter über mehr Erfahrung.
Der Server sendet kleine Ausschnitte des Framebuffers an den Client. In seiner einfachsten Form kann das VNC-Protokoll viel Bandbreite beanspruchen , weshalb verschiedene Methoden zur Reduzierung des Kommunikationsaufwands entwickelt wurden. Beispielsweise gibt es verschiedene Kodierungen (Methoden zur Bestimmung der effizientesten Übertragungsmethode für diese Ausschnitte). Das VNC-Protokoll ermöglicht es Client und Server, die zu verwendende Kodierung auszuhandeln. Die einfachste Kodierung, die von allen Clients und Servern unterstützt wird, ist die Rohkodierung . Sie sendet Pixeldaten in Zeilenreihenfolge von links nach rechts und überträgt nach der Übertragung des gesamten Bildschirms nur noch die sich ändernden Ausschnitte. Diese Kodierung funktioniert sehr gut, wenn sich nur ein kleiner Teil des Bildschirms von einem Frame zum nächsten ändert (z. B. wenn sich der Mauszeiger über den Desktop bewegt oder Text an der Cursorposition geschrieben wird). Der Bandbreitenbedarf steigt jedoch stark an, wenn sich viele Pixel gleichzeitig ändern (z. B. beim Scrollen eines Fensters oder beim Ansehen eines Videos im Vollbildmodus).
VNC verwendet standardmäßig den TCP-Port 5900+ N [ 6 ] [ 7 ] , wobei N die Displaynummer ist (üblicherweise :0 für ein physisches Display). Einige Implementierungen starten zusätzlich einen einfachen HTTP- Server auf Port 5800+ N , um einen VNC-Viewer als Java-Applet bereitzustellen und so eine einfache Verbindung über jeden Java-fähigen Webbrowser zu ermöglichen. Andere Portzuweisungen sind möglich, sofern Client und Server entsprechend konfiguriert sind. Es existiert auch eine HTML5-VNC-Client-Implementierung für moderne Browser (ohne Plugins erforderlich) [ 8 ] .
Obwohl die Nutzung von VNC über das Internet auch bei geringer Bandbreite möglich ist, wird sie durch eine Breitbandverbindung an beiden Enden erleichtert . Allerdings kann eine Verbindung auch mit erweiterter Netzwerkadressübersetzung (NAT), Firewall- und Routerkonfiguration , wie z. B. Portweiterleitung , erforderlich sein . Alternativ können Nutzer die Kommunikation über VPN-Technologien ( Virtual Private Network ) herstellen, um die Nutzung über das Internet zu vereinfachen, oder über eine LAN-Verbindung, wenn VPN als Proxy verwendet wird, oder über einen VNC-Repeater (nützlich bei Vorhandensein von NAT). [ 9 ] [ 10 ]
Darüber hinaus entspricht die von VNC bereitgestellte Anzeige nicht unbedingt der Anzeige, die ein Benutzer auf dem Server sieht. Auf Unix/Linux-Rechnern, die mehrere gleichzeitige X11-Sitzungen unterstützen, kann VNC so konfiguriert werden, dass es eine bestimmte bestehende X11-Sitzung bedient oder eine eigene startet. Es ist auch möglich, mehrere VNC-Sitzungen vom selben Rechner aus zu betreiben. Unter Microsoft Windows wird immer die aktuelle Benutzersitzung als VNC-Sitzung verwendet.
Im Juli 2014 veröffentlichte RealVNC eine Wayland- Entwicklervorschau. [ 11 ] [ 12 ]
Sicherheit
RFB ist standardmäßig kein sicheres Protokoll und sollte daher nur über verschlüsselte Verbindungen wie IPsec oder SSH (oder in einem sicheren Netzwerk) verwendet werden. Obwohl Passwörter nicht im Klartext übertragen werden (wie beispielsweise bei Telnet ), könnte ein Angriff erfolgreich sein, wenn sowohl der Verschlüsselungsschlüssel als auch das verschlüsselte Passwort im Netzwerk abgefangen werden. [ 13 ] Aus diesem Grund wird empfohlen, ein Passwort mit mindestens 8 Zeichen zu verwenden. Auch einige VNC-Versionen haben eine Beschränkung auf 8 Zeichen; [ 14 ] wird ein Passwort mit mehr als 8 Zeichen gesendet, werden die überflüssigen Zeichen entfernt und die abgeschnittene Zeichenkette mit dem Passwort verglichen. [ 15 ]
UltraVNC unterstützt ein Open-Source-Verschlüsselungs-Plugin, das die gesamte VNC-Sitzung inklusive Passwortauthentifizierung und Datenübertragung verschlüsselt. [ 16 ] Es ermöglicht außerdem die Authentifizierung über NTLM- und Active Directory- Benutzerkonten. [ 17 ] Die Verwendung solcher Verschlüsselungs-Plugins führt jedoch zu Inkompatibilität mit anderen VNC-Programmen. RealVNC bietet im Rahmen seines kommerziellen Pakets eine hochsichere AES-Verschlüsselung [ 18 ] sowie die Integration mit Active Directory. [ 19 ] Laut TightVNC ist TightVNC unsicher, da Bilddaten unverschlüsselt übertragen werden. Um dies zu umgehen, sollte die Verbindung über einen SSH-Tunnel hergestellt werden [ 20 ] (siehe unten).
VNC kann über eine SSH- oder VPN -Verbindung getunnelt werden, was eine zusätzliche Sicherheitsebene mit stärkerer Verschlüsselung bietet. [ 21 ]
Ein zusätzliches Sicherheitsrisiko bei der Verwendung von VNC besteht darin, zu prüfen, ob die verwendete Version eine Autorisierung des Besitzers des entfernten Computers erfordert, bevor jemand die Kontrolle über dessen Gerät übernimmt. Dadurch wird vermieden, dass der Besitzer des zugegriffenen Computers ohne vorherige Benachrichtigung feststellt, dass jemand anderes die Kontrolle über sein Gerät hat. Diese Sicherheitsfunktion wurde in einigen VNC-Servern, wie beispielsweise RealVNC und UltraVNC, implementiert. [ 17 ] [ 22 ]
Implementierungen
Xvnc ist der Unix-VNC-Server, der auf einem Standard -X-Server basiert . Anwendungen erscheint Xvnc als X-Server (d. h., er zeigt Client-Fenster an), während er für entfernte VNC-Benutzer als VNC-Server fungiert. Anwendungen können sich auf Xvnc wie auf einem normalen X-Bildschirm darstellen, erscheinen jedoch auf den verbundenen VNC-Viewern und nicht auf einem physischen Bildschirm. [ 23 ] Alternativ kann ein Rechner (z. B. eine Workstation oder ein Netzwerkserver) mit Bildschirm, Tastatur und Maus so eingerichtet werden, dass er den VNC-Server als Dienst oder Daemon ausführt. Anschließend können Bildschirm, Tastatur und Maus entfernt und der Rechner an einem unauffälligen Ort aufbewahrt werden.
VNC wird häufig als plattformübergreifendes Remote-Desktop-System eingesetzt. Beispielsweise ist Apple Remote Desktop für Mac OS X (und „ Back to My Mac “ in den Versionen 10.5 bis 10.13) mit VNC kompatibel und stellt eine Verbindung zum aktuellen Desktop eines Unix-Benutzers her, sofern dieser mit x11vnc bereitgestellt wird, oder zu einer separaten X11-Sitzung, falls eine solche mit TightVNC bereitgestellt wird. Unter Unix stellt TightVNC eine Verbindung zu einer Mac OS X-Sitzung her, die von Apple Remote Desktop bereitgestellt wird, sofern die VNC-Option aktiviert ist, oder zu einem VNC-Server unter Microsoft Windows. [ 24 ]
Zu den Open-Source-Programmen oder -Bibliotheken, die VNC implementieren, gehören: KRDC , Krfb , Libvncserver , Remmina , TigerVNC , TightVNC , TurboVNC , UltraVNC , Veyon , Vinagre , VirtualGL , x11vnc und xpra .
Siehe auch
Referenzen
- ^ Richardson, T.; Stafford-Fraser, Q.; Wood, KR; Hopper, A. (1998). „Virtual network computing“ (PDF) . IEEE Internet Computing . 2 : 33–38 . CiteSeerX 10.1.1.17.5625 . doi : 10.1109/4236.656066 .
- ^ „Die VNC-Familie der Fernsteuerungsanwendungen: eine Liste der VNC-Varianten“ . Archiviert vom Original am 7. Dezember 2023. Abgerufen am 4. Juni 2009 .
- ^ „VNC Häufig gestellte Fragen (FAQ)“ . 1999. Archiviert vom Original am 15. August 2000.
- ^ „RealVNC Executive Profiles“ . Archiviert vom Original am 15. Mai 2016. Abgerufen am 23. Juni 2011 .
- ^ Copyright und Markenrechte liegen bei RealVNC. Abgerufen am 23. Februar 2018.
- ^ "Häufig gestellte Fragen" .
- ^ „UltraVNC-Konfiguration“ . Archiviert vom Original am 3. Juli 2011. Abgerufen am 19. April 2009 .
- ^ "noVNC" . GitHub .
- ^ "OpenWRT VNC-Repeater" .
- ^ "UltraVNC Repeater - UltraVNC VNC OFFIZIELLE WEBSITE, Remote Desktop Free Opensource" .
- ^ „VNC® Wayland Developer Preview“ . 8. Juli 2014. Archiviert vom Original am 14. Juli 2014. Abgerufen am 10. Juli 2014 .
- ^ „RealVNC Wayland Entwickler-Vorschau-E-Mail“ . freedesktop.org . 9. Juli 2014.
- ^ Richardson, Tristan; Levine, John R. (März 2011). Das Remote Framebuffer Protocol (Bericht). Internet Engineering Task Force.
- ^ „Fernzugriff mit VNC [EECS Technische Datenbank]“ . wiki.eecs.yorku.ca . Abgerufen am 6. Juli 2025 .
- ^ "vncpasswd" . tigervnc.org . Abgerufen am 6. Juli 2025 .
- ^ „SecureVNC-Plugin – UltraVNC VNC OFFIZIELLE WEBSITE, Kostenlose Open-Source-Fernzugriffssoftware“ . uvnc.com . Abgerufen am 6. Juli 2025 .
- ^ a b „UltraVNC Serverkonfiguration – Offizielle UltraVNC-Website, kostenloser Open-Source-Fernzugriff“ . uvnc.com . Abgerufen am 6. Juli 2025 .
- ^ „VNC Connect für maximale Sicherheit einrichten“ . RealVNC-Hilfezentrum . 21. März 2024. Abgerufen am 6. Juli 2025 .
- ^ „Einrichten der Single-Sign-On-Authentifizierung“ . RealVNC-Hilfezentrum . 2. Mai 2024. Abgerufen am 6. Juli 2025 .
- Wie sicher ist TightVNC? Häufig gestellte Fragen zu TightVNC. TightVNC.com (Zugriff: 23. Februar 2018)
- ^ Wallen, Jack (17. Januar 2019). „Wie man sich über SSH mit VNC verbindet“ . TechRepublic . Abgerufen am 6. Juli 2025 .
- ^ „Verbindungsgenehmigung durch den Besitzer des Remote-Computers erforderlich“ . RealVNC-Hilfezentrum . 31. Mai 2022. Abgerufen am 6. Juli 2025 .
- ^ AT&T Laboratories Cambridge (1999). „X-basierter VNC-Server“ . Virtual Network Computing . Archiviert vom Original am 19. März 2007. Abgerufen am 24. März 2007 .
- ^ "OnlineVNC-Server für Windows-Betriebssysteme" .
Externe Links
- RFB 3.8 Protokollstandard
- AT&T VNC , archiviert am 16. Oktober 2008 in der Wayback Machine : Original-Website von AT&T-Cambridge VNC