Virtuella nätverksdatorer
Virtual Network Computing ( VNC ) är ett grafiskt skrivbordsdelningssystem som använder Remote Frame Buffer-protokollet (RFB) för att fjärrstyra en annan dator . Den överför tangentbords- och musindata från en dator till en annan, vidarebefordrar de grafiska skärmuppdateringarna , över ett nätverk .
VNC är plattformsoberoende – det finns klienter och servrar för många GUI-baserade operativsystem och för Java . Flera klienter kan ansluta till en VNC-server samtidigt. Populära användningsområden för denna teknik inkluderar teknisk fjärrsupport och åtkomst till filer på ens arbetsdator från ens hemdator, eller vice versa.
VNC utvecklades ursprungligen vid Olivetti & Oracle Research Lab i Cambridge, Storbritannien. Den ursprungliga VNC- källkoden och många moderna derivat är öppen källkod under GNU General Public License .
Det finns ett antal varianter av VNC som erbjuder sin egen speciella funktionalitet; t.ex. vissa optimerade för Microsoft Windows eller erbjuder filöverföring (inte en del av VNC), etc. Många är kompatibla (utan deras extra funktioner) med VNC i den meningen att en tittare av en smak kan ansluta till en server för en annan ; andra är baserade på VNC-kod men inte kompatibla med standard VNC.
VNC och RFB är registrerade varumärken som tillhör RealVNC Ltd. i USA och vissa andra länder.
Historia
Olivetti & Oracle Research Lab (ORL) i Cambridge i Storbritannien utvecklade VNC vid en tidpunkt då Olivetti och Oracle Corporation ägde labbet. 1999 förvärvade AT&T labbet och 2002 lade ner labbets forskningsinsatser.
Utvecklare som arbetade på VNC medan de fortfarande var på AT&T Research Lab inkluderar:
- Tristan Richardson (uppfinnare)
- Andy Harter (projektledare)
- Quentin Stafford-Fraser
- James Weatherall
- Andy Hopper
Efter nedläggningen av ORL 2002 bildade flera medlemmar av utvecklingsteamet (inklusive Richardson, Harter, Weatherall och Hopper) RealVNC för att fortsätta arbeta med öppen källkod och kommersiell VNC-mjukvara under det namnet.
Den ursprungliga GPLed-källkoden har matats in i flera andra versioner av VNC. Sådan förgrening har inte lett till kompatibilitetsproblem eftersom RFB-protokollet är designat för att kunna utökas. VNC-klienter och -servrar förhandlar fram sina möjligheter med handskakning för att använda de lämpligaste alternativen som stöds i båda ändar.
Från och med 2013 hävdar RealVNC Ltd termen "VNC" som ett registrerat varumärke i USA och i andra länder.
Etymologi
Namnet Virtual Network Computer/Computing (VNC) har sitt ursprung i ORL:s arbete med en tunn klient som kallas Videotile, som också använde RFB-protokollet. Videotile hade en LCD-skärm med penninmatning och en snabb ATM- anslutning till nätverket. På den tiden användes nätverksdator ofta som en synonym för en tunn klient; VNC är i huvudsak en nätverksdator med endast programvara (dvs. virtuell). [ citat behövs ]
Drift
- VNC- servern är programmet på maskinen som delar en viss skärm (och kanske inte är relaterad till en fysisk skärm – servern kan vara " huvudlös" ) och låter klienten dela kontrollen över den.
- VNC- klienten (eller tittaren) är programmet som representerar skärmdata som härrör från servern, tar emot uppdateringar från den och antagligen kontrollerar den genom att informera servern om insamlad lokal input.
- VNC- protokollet ( RFB-protokollet ) är mycket enkelt, baserat på att sända en grafisk primitiv från server till klient ("Sätt en rektangel av pixeldata vid den specificerade X,Y-positionen") och händelsemeddelanden från klient till server.
Vid normal drift ansluter en tittare till en port på servern (standardport: 5900). Alternativt (beroende på implementeringen) kan en webbläsare ansluta till servern (standardport: 5800). Och en server kan ansluta till en tittare i "lyssningsläge" på port 5500. En fördel med lyssningsläge är att serverplatsen inte behöver konfigurera sin brandvägg för att tillåta åtkomst på port 5900 (eller 5800); plikten ligger på tittaren, vilket är användbart om serverplatsen inte har någon datorexpertis och tittaranvändaren är mer kunnig.
Servern skickar små rektanglar av framebuffern till klienten. I sin enklaste form kan VNC-protokollet använda mycket bandbredd , så olika metoder har utarbetats för att minska kommunikationskostnaderna. Till exempel finns det olika kodningar (metoder för att bestämma det mest effektiva sättet att överföra dessa rektanglar). VNC-protokollet tillåter klienten och servern att förhandla om vilken kodning de ska använda. Den enklaste kodningen, som stöds av alla klienter och servrar, är råkodning , som skickar pixeldata i skanningsordning från vänster till höger, och efter att den ursprungliga helskärmen har sänts överförs endast rektanglar som ändras. Denna kodning fungerar mycket bra om bara en liten del av skärmen ändras från en bildruta till nästa (som när en muspekare rör sig över ett skrivbord, eller när text skrivs vid markören), men bandbreddskraven blir mycket höga om mycket antalet pixlar ändras samtidigt (som när du rullar ett fönster eller tittar på helskärmsvideo).
VNC använder som standard TCP-port 5900+ N , där N är displaynumret (vanligtvis :0 för en fysisk skärm). Flera implementeringar startar också en grundläggande HTTP- server på port 5800+ N för att tillhandahålla en VNC-visare som en Java-applet , vilket möjliggör enkel anslutning via alla Java-aktiverade webbläsare. Olika porttilldelningar kan användas så länge som både klient och server är konfigurerade därefter. En HTML5 VNC-klientimplementering för moderna webbläsare (inga plugins krävs) finns också.
Även om det är möjligt även på låg bandbredd, underlättas det att använda VNC över Internet om användaren har en bredbandsanslutning i båda ändar. Det kan dock kräva avancerad nätverksadressöversättning (NAT), brandvägg och routerkonfiguration som portvidarebefordran för att anslutningen ska gå igenom. Användare kan upprätta kommunikation via virtuella privata nätverkstekniker (VPN) för att underlätta användningen över Internet, eller som en LAN-anslutning om VPN används som proxy, eller genom en VNC-repeater (användbart i närvaro av en NAT).
Xvnc är Unix VNC-servern, som är baserad på en standard X-server . För applikationer visas Xvnc som en X-"server" (dvs. den visar klientfönster), och för fjärranvändare av VNC är det en VNC-server. Applikationer kan visa sig själva på Xvnc som om det vore en normal X-skärm, men de kommer att visas på alla anslutna VNC-visare snarare än på en fysisk skärm. Alternativt kan en maskin (som kan vara en arbetsstation eller en nätverksserver) med skärm, tangentbord och mus ställas in för att starta och köra VNC-servern som en tjänst eller demon, sedan kan skärmen, tangentbordet och musen tas bort och maskinen förvarad på en ur vägen plats.
Dessutom är skärmbilden som serveras av VNC inte nödvändigtvis samma skärm som en användare på servern ser. På Unix/Linux-datorer som stöder flera samtidiga X11-sessioner, kan VNC ställas in för att betjäna en viss befintlig X11-session, eller att starta en egen. Det är också möjligt att köra flera VNC-sessioner från samma dator. På Microsoft Windows är VNC-sessionen alltid den aktuella användarsessionen. [ citat behövs ]
Användare distribuerar vanligtvis VNC som ett plattformsoberoende fjärrskrivbordssystem. Till exempel, Apple Remote Desktop för Mac OS X (och på senare tid, " Tillbaka till min Mac " i "Leopard" - Mac OS X 10.5) samverkar med VNC och kommer att ansluta till en Unix-användares nuvarande skrivbord om det serveras med x11vnc , eller till en separat X11-session om en serveras med TightVNC . Från Unix kommer TightVNC att ansluta till en Mac OS X-session som serveras av Apple Remote Desktop om VNC-alternativet är aktiverat, eller till en VNC-server som körs på Microsoft Windows.
I juli 2014 publicerade RealVNC en förhandsvisning av Wayland- utvecklare.
säkerhet
Som standard är RFB inte ett säkert protokoll. Även om lösenord inte skickas i vanlig text (som i telnet ), kan cracking visa sig vara framgångsrikt om både krypteringsnyckeln och det kodade lösenordet sniffades från ett nätverk. Av denna anledning rekommenderas att ett lösenord på minst 8 tecken används. Å andra sidan finns det också en begränsning på 8 tecken på vissa versioner av VNC; om ett lösenord skickas som överstiger 8 tecken tas de överflödiga tecknen bort och den trunkerade strängen jämförs med lösenordet.
UltraVNC stöder användningen av en öppen källkodskrypteringsplugin som krypterar hela VNC-sessionen inklusive lösenordsautentisering och dataöverföring. Det tillåter också autentisering att utföras baserat på NTLM- och Active Directory- användarkonton. Användning av sådana krypteringsplugin gör det dock inkompatibelt med andra VNC-program. RealVNC erbjuder höghållfast AES-kryptering som en del av sitt kommersiella paket, tillsammans med integration med Active Directory. Workspot släppte AES-krypteringskorrigeringar för VNC. Enligt TightVNC är TightVNC inte säkert eftersom bilddata överförs utan kryptering. För att kringgå detta bör den tunnlas genom en SSH-anslutning (se nedan).
VNC kan tunnlas över en SSH- eller VPN- anslutning, vilket skulle lägga till ett extra säkerhetslager med starkare kryptering. SSH-klienter är tillgängliga för de flesta plattformar; SSH-tunnlar kan skapas från UNIX- klienter, Microsoft Windows-klienter, Mac -klienter (inklusive Mac OS X och System 7 och uppåt) – och många andra. Det finns också gratisprogram som skapar omedelbara VPN-tunnlar mellan datorer.
Ett ytterligare säkerhetsproblem för användningen av VNC är att kontrollera om versionen som används kräver auktorisering från fjärrdatorns ägare innan någon tar kontroll över deras enhet. Detta kommer att undvika situationen där ägaren av den dator som används inser att det finns någon som har kontroll över sin enhet utan föregående meddelande.
Se även
externa länkar
- RFB 3.8 Protokollstandard
- AT&T VNC - Original AT&T-Cambridge VNC-webbplats