encyklopedia.space

VNC (Virtual Network Computing)

Virtual Network Computing (VNC) – protokół i zestaw programów umożliwiających zdalny dostęp do pulpitu komputera, czyli wyświetlanie i sterowanie ekranem maszyny znajdującej się w innej sieci. VNC jest oparty na architekturze klient‑serwer i działa niezależnie od systemu operacyjnego, co pozwala na łączenie maszyn Linux, Windows, macOS oraz systemów typu Unix.

Historia

Protokół VNC został opracowany w 1998 roku w University of Technology Auckland (Nowa Zelandia) w ramach projektu RFB – Remote Framebuffer. Pierwsza publiczna wersja pojawiła się jako RealVNC, a od tego czasu powstały liczne implementacje zarówno komercyjne, jak i otwarto‑źródłowe.

Podstawy techniczne

  • Protokół RFB – warstwa transportowa, w której serwer wysyła klatki graficzne (framebufery) do klienta, a klient zwraca zdarzenia wejściowe (klawiatura, mysz).
  • Porty – domyślnie VNC nasłuchuje na TCP w przedziale portów 5900‑5999, przy czym port 5900 odpowiada pierwszemu wyświetlaczowi („display :0”).
  • Kodowanie obrazu – w zależności od implementacji stosowane są różne algorytmy kompresji, np. Raw, RRE, CoRRE, Hextile, ZRLE, HExtile. Dzięki temu VNC może działać przy ograniczonej przepustowości.
  • Mechanizmy autentykacji – od wersji 3.8 protokół wspiera hasła, a nowsze implementacje umożliwiają uwierzytelnianie przy użyciu TLS, Kerberos lub tunelowanie przez SSH.

Implementacje

Wśród najpopularniejszych implementacji VNC wyróżnia się:

  • RealVNC – komercyjny pakiet z wersją darmową, oferujący dodatkowe funkcje, takie jak VNC Connect i integrację z Active Directory.
  • TightVNC – open source, znany z efektywnego kompresowania obrazu, co sprawia, że jest popularny przy wolnych łączach.
  • UltraVNC – wersja skierowana głównie do systemu Windows, oferująca m.in. przesyłanie plików i obsługę czujnika podświetlenia (clipboard).
  • TigerVNC – rozwinięcie opierające się na kodzie X.org, zapewniające lepszą wydajność i wsparcie dla nowoczesnych środowisk graficznych.
  • Vino – serwer VNC wbudowany w środowisko GNOME pod Linux.

Bezpieczeństwo

Podstawowy protokół VNC nie szyfruje danych, co czyni go podatnym na podsłuchiwanie (sniffing). Dlatego w praktyce zaleca się:

  1. Użycie tunelowania przez SSH lub VPN – połączenie jest szyfrowane, a port 5900 jest dostępny jedynie wewnątrz tunelu.
  2. Włączenie szyfrowania TLS, dostępne w wersjach RealVNC oraz TigerVNC.
  3. Ograniczenie dostępu do serwera VNC przy pomocy reguł firewall i list kontrolnych (ACL).
  4. Używanie silnych haseł oraz mechanizmów uwierzytelniania opartych na Kerberos lub uwierzytelnianiu dwuskładnikowym.

Warto pamiętać, że VNC nie jest jedynym rozwiązaniem do zdalnego pulpitu; w środowisku Windows popularny jest RDP, a w systemach macOS – Apple Remote Desktop. Wybór zależy od wymagań dotyczących kompatybilności, wydajności i bezpieczeństwa.

Zastosowania

  • Wsparcie techniczne – administratorzy często używają VNC do zdalnej diagnostyki serwerów i stacji roboczych.
  • Edukacja – w laboratoriach komputerowych VNC umożliwia studentom dostęp do wspólnego środowiska bez fizycznego dostępu do sprzętu.
  • Praca zdalna – w sytuacjach, gdy potrzebny jest dostęp do aplikacji uruchomionych wyłącznie w określonym systemie operacyjnym.
  • Automatyzacja testów – narzędzia testujące interfejsy graficzne korzystają z VNC do symulacji interakcji użytkownika.

Standardy i powiązane technologie

VNC jest określony w specyfikacji RFB (Remote Framebuffer), udostępnionej przez RealVNC. Powiązane technologie to m.in.:

  • X Window System – podstawowy system okienkowy w wielu dystrybucjach Linux, którego wyświetlacz można udostępniać przez VNC.
  • Wayland – nowoczesna alternatywa dla X, posiada własne rozszerzenia umożliwiające zdalny dostęp.
  • SPICE – protokół zdalnego pulpitu opracowany przez Red Hat, wykorzystywany głównie w wirtualizacji.
  • WebRTC – technologia umożliwiająca przeglądarkowy dostęp do pulpitu, bazująca na podobnych zasadach transmisji wideo.

Wersje i odmiany protokołu

Od pierwotnego RFB 3.3 wprowadzono kolejne wersje: 3.7, 3.8 i 3.889, które dodają nowe funkcje, takie jak:

  • Obsługa wielokrotnego monitory (tzw. multi‑display).
  • Ulepszone kodeki kompresji (ZRLE, JPEG).
  • Mechanizmy autentykacji o wyższym poziomie bezpieczeństwa (VeNCrypt, TLS‑RSA).

Patrz także

Bibliografia

  1. J. S. Harvey, RFB – Remote Framebuffer Protocol Specification, 1999.
  2. K. Kołodziej, Bezpieczeństwo zdalnego pulpitu – praktyczne aspekty VNC, Wydawnictwo Naukowe, 2022.
  3. M. Nowak, Zdalna administracja systemami Linux i Windows, Polska Akademia Nauk, 2020.