Bjarne Duelund's PC-INFO


Fjernstyring med VNC (Virtual Network Computing)


af Bjarne Duelund


At kunne fjernstyre en PC vil ofte være meget bekvemmeligt. Efterhånden har de fleste mere end en PC og ofte vil man have flere PC stående der normalt ikke skal betjenes, men kun checkes i ny og næ. I sådanne tilfælde kan man tilslutte sine PC til en PC-omskifter således at man kan nøjes med at have ét tastatur/mus og én skærm, der så via omskifter tilsluttes den PC man vil betjene. En anden mulighed er at benytte et fjernstyringsprogram, derved sparer man en omskifterboks og man er ikke afhængig af den korte afstand der kan være imellem PC og omskifter - med et fjernstyringsprogram er afstand slet ikke en parameter man behøver at bekymre sig om, blot der er en fungerende netværksforbindelse imellem. Denne netværksforbindelse kan være et lokalnet (LAN), et fjernnet (WAN) f.eks. via Internet eller blot en modemforbindelse.

Til fjernstyring af PC findes flere alternativer, mest kendt til fjernstyring af og fra alm. PC er PcAnywhere (Symantec), ReachOut (Stac), NetOp (Danware), ControlIT (CA), RemotelyAnywhere (03AM Labs) og gratis programmet VNC - Virtual Network Computing (AT&T). Af andre mere eller mindre kendte og specialiserede findes SMS (Microsoft), Tivoli Remote Control (Tivoli), Carbon Copy (Compaq), Radmin (Famatech), NetSupport Manager og mange andre.

Jeg vil her kort gennemgå hvorledes man installerer, konfigurerer og benytter VNC. Dette er valgt da VNC er simpelt og nemt at bruge samt at det er gratis. Alle fjernstyringsprogrammer består af en Host-del (vært, den fjernstyrede) og en Client-del (klient, den der fjernstyrer), med VNC kaldes disse for VNC Server og VNC Viewer. En af fordelene ved VNC er at klientdelen (vncviewer.exe) kun fylder ca.170 KB og derfor nemt kan medbringes på diskette og kan køres derfra. Det er altså ikke nødvendigt på nogen måde at installere klienten, den skal blot kopieres ind på harddisk eller køres direkte fra diskette eller CD-ROM.

Der beskrives tre grundlæggende konfigurationer (1-3), samt yderligere informationer (3-5):

    1. Fjernstyring på lokalnet (LAN)
    2. Fjernstyring via modem
    3. Fjernstyring via Internet (ADSL router), samt andre muligheder
    4. Fjernstyring med Internet browser som viewer
    5. Avanceret konfiguration
    6. Sådan virker NAT


Gennemgangen her er langtfra dækkende alt om VNC, en betydelige mere detaljeret engelsk teknisk gennemgang kan findes på VNC hjemmesiden: VNC - Virtual Network Computing from AT&T Laboratories Cambridge.
>TOP


1. Fjernstyring på lokalnet (LAN)

OBS! Bemærk at denne guide er baseret på en ældre udgave af VNC (den aktuelle på daværende tidspunkt).

Installation af VNC Server

Start med at hente nyeste VNC herfra: Downloading VNC.
Udpak arkivet til et midlertidigt katalog og installer VNC ved at køre .\vnc_x86_win32\winvnc\Setup.exe.
Efter installationen får man følgende gruppe i sin Start menu:

På den PC der skal køre som vært (skal fjernstyres) skal man som det første have sat de nødvendige settings i registreringsdatabasen. Dette gøres ved at aktivere den tilhørende "VNCHooks_Settings.reg", i Start menuen benævnt "Install Default Registry Settings":
For at starte Værts-delen af VNC (VNC Server), aktiveres "WinVNC.exe" via genvejen "Run WinVNC (App Mode)":
Første gang VNC Server køres, skal man angive et password:


Undlader man at angive et password, advares man og VNC nægter at starte op:


Start med at indtaste et nemt password der er til at huske og tryk Ok:


Nu kører VNC Server og er klar til at blive fjernstyret af en VNC Viewer. Uanset under hvilken konfiguration man skal køre VNC, er det en god idé først at teste forbindelsen med en manuelt opstartet VNC Server, som her. For en PC der altid skal køre VNC Server og helst skal starte VNC Server automatisk ved boot, kan man passende installere VNC Server som en service. Installeres VNC som service på en Windows 9x er den øjeblikkelig klar til brug, på en Windows NT/2000 kræves en reboot før servicen er installeret korrekt. Installer VNC Server som service ved at aktivere "Install WinVNC Service":

Installation af VNC Viewer
Hvis man på den PC der skal fjernstyres fra også har installeret VNC, kan VNC Viewer startes fra Start menuen:
Alternativt kan man kopiere VNC Viewer'en fra det udpakkede arkivs .\vnc_x86_win32\vncviewer\vncviewer.exe til diskette eller harddisk og køre den derfra. 

Ved opstart af VNC Viewer skal man angive hvilken VNC Server man vil forbinde sig til, enten ved at angive NETBIOS navnet (PC navn) eller IP adressen:



Efter validering af password og korrekt forbindelse er opnået kan man fjernstyre den PC der har VNC Server installeret.
>TOP


2. Fjernstyring via modem

Fjernstyring med VNC over modem foregår stort set på samme måde som fjernstyring over LAN.
Først installeres VNC Server på den PC der skal fjernstyres, se ovenfor (Fjernstyring på Lokalnet (LAN)). Dernæst skal det sikres at værts PC kan modtage modemopkald, hvilket med Windows sker med Opkaldsserver. Hvis værts PC er Windows 95 kræver det at Windows 95 Plus! pakken er installeret før man får adgang til at køre Opkaldssserver. Endvidere bør man, hvis VNC Server eller VNC Viewer skal køre på den originale Windows 95, opdatere DUN (Dial Up Networking = NvM, Netværk via Modem) til version 1.3. Opdateringen kan hentes hos Microsoft eller Herfra. Hvis Værts PC er Windows 98 behøver man blot installere komponenten Opkaldsserver fra "Kontrolpanel" -> "Tilføj/Fjern Programmer" -> "Windows Installation" -> "Kommunikation":


Når Opkaldsserver er installeret, startes den fra "Netværk via modem" under punktet Tilslutninger:


Hvis der er installeret flere modems, vælges hvilket der skal benyttes til fjernadgangen og "Tillad adgang for den, der ringer op" markeres:


Der kan evt. vælges en adgangskode ved at trykke på knappen "Skift adgangskode":


Aktiveres "Servertype", kan der vælges forbindelsestype, komprimering og krypteret adgangskode:


Først når der trykkes på "Anvend" aktiveres Opkaldsserver og PC står klar til at modtage opkald på modem. Det checkes at Status overgår til "Overvåger" (endvidere fremkommer der et Opkaldsserver ikon på Systray):


Nu er VNC Server PC klar til Fjernstyring via modem, på klient PC skal man blot kopiere VNC Viewer programmet ind (eller have det klar på diskette) samt oprette en Netværk via Modem forbindelse. Start guiden ved aktivere "Opret ny forbindelse" under Netværk via Modem, giv forbindelsen et navn og udfyld telefonnummer. Efter oprettelsen af forbindelsen konfigureres egenskaber -> "Servertyper" (højreklik på forbindelsen, tryk Egenskaber, vælg fanebladet Servertyper). Fravælg andre protokiller end TCP/IP og fravælg evt. alle avancerede indstillinger:


Dernæst er det blot at kalde op med Netværk via Modem forbindelsen og når forbindelsen er etableret startes VNC Viewer. Hvis man har husket at sørge for at VNC Server kører på værtsmaskinen, skulle det nu være muligt at fjernstyre denne.
>TOP


3. Fjernstyring via Internet (ADSL router)

Opsætning af VNC til fjernstyring via Internet, f.eks. gennem en ADSL router, foregår præcis som installation af VNC på lokalnet (LAN), se øverst. Der er dog to forhold der er anderledes og som man skal tage højde for:

a) Navne opslag, VNC Viewer
Da man oftest ikke kan slå NETBIOS (PC-) navnet op via Internet (med mindre det er konfigureret i en DNS server), skal man i VNC Viewer opgive IP adressen på routeren til den VNC Server man vil fjernbetjene, eller indsætte adressen i sin lokale HOSTS fil. Se evt. eksempelfilen HOSTS.SAM hvorledes dette gøres.

b) Portmapning, VNC Server
For at kunne route VNC trafik igennem routeren til VNC Server, skal man vide hvilken port VNC benytter. Som standard benytter VNC port # 5900, men VNC kan nemt konfigureres til at benytte en anden port, f.eks. 5917:


Bemærk at der her er angivet "Display Number: 17", derved benytter VNC Server port # 5917.
Man skal derfor have mappet sin router til at videresende udefra kommende trafik til port 5917 videre til sin VNC Server PC på port 5917. På en Cisco 677 ADSL router (som benyttes af CyberCity og World Online) gøres det med kommandoen:
SET NAT ENTRY ADD <intern adresse> <port> <ekstern adresse> <port> <protokol>
f.eks. således (fiktive adresser):
SET NAT ENTRY ADD  192.168.1.11  5917  213.214.11.47  5917  TCP

For andre routere er princippet det samme, dog blot med en anden syntax.

For at angive i VNC Viewer at der skal laves opkald til port 5917, indtastes :17 efter IP adressen:


Husk at det er routerens IP adresse der skal indtastes i VNC Viewer, routeren sørger for at trafikken bliver routet videre til VNC Server (pga. den tidligere SET NAT ENTRY ......). Bemærk at det kun er i 'server'-enden at ovennævnte mapning skal foretages, i klient-enden behøves der ikke foretages noget.

Display Nummer/Portadresse på VNC Server findes efter følgende formel:
For porte > 5900:
Display Number = [desired port number] - 5900
Eks:
Display Number = Port 5917 - 5900 (= 17)

For porte < 5900:
Display Number = [desired port number] - 5900 + 65536
Eks:
Display Number = Port 3030 - 5900 + 65536 (= 62666)
(man skal altå angive Displaynummer = 62666 i VNC Server for at benytte port 3030)

På VNC Viewer skal følgende formel benyttes:
For porte > 5900:
Display Number = [desired port number] - 5900
Eks:
Display Number = Port 5917 - 5900 (= 17)

For porte => 100 og < 5900
Display Number = [desired port number]
Eks:
Display Number = Port 3030

For porte <= 99
Display Number = [desired port number] - 5900
Eks:
Display Number = Port 80 - 5900 (= -5820)
(man skal altå angive Displaynummer = :-5820 i VNC Viewer for at benytte port 80)


Andre muligheder
Samme fremgangsmåde med at mappe en port benyttes for andre remotestyringsprogrammer, det er blot en anden (fast) port der skal mappes, f.eks.:

Program Port Info
PcAnywhere (nyere) 5631/TCP og 5632/UDP *)
ControlIT (=RemotelyPossible) 799/TCP *)
RAdmin 4899/TCP   
TridiaVNC 59xx/TCP (std. 5900) *) 1)
RemotelyAnywhere 2000/TCP og 2001/TCP *) 2)
Windows 2000 Terminal Server 3389/TCP *) 3)
Windows XP Pro/Home - Remote Assistance (fjernstyring) 3389/TCP   
Windows XP Pro - Remote Desktop (Terminal Service) 3389/TCP *) 3)

*) 
Udover VNC har jeg afprøvet disse, også på ADSL.
1)  TridiaVNC er en VNC-"klon" og er en udbygning af den frie VNC med en langt hurtigere og mere effektiv overførselsprotokol (zlib compression). Til forskel fra VNC, kan TridiaVNC ikke fjernstyres med Internet Browser. Der er fuld support på TridiaVNC, mod betaling.
2)  RemotelyAnywhere kan kun fjernstyres med en Java enablet browser som Internet Explorer. Der er intet dedikeret klientprogram. Port 2001 benyttes til SSL Connection og kan udelades. RemotelyAnywhere er ikke kun til fjernstyring, men kan også udtrække/ændre konfigurationsoplysninger.
3)  Terminal Service/Remote Desktop er ikke et egentligt remotestyringsprogram, men 'fjernstyrer' en session der kører på serveren. På Windows XP kan der dog kun køre én session af gangen, hvorfor den lokale bruger logges af hvis der logges på remote (efter advarsel), og omvendt. Der medfølger en RD klient på XP CD-ROM'en. En RD-klient til brug til Windows 95, Windows 98 og 98 Second Edition, Windows Me, Windows NT 4.0 eller Windows 2000 kan downloades her: Remote Desktop Connection Software Download. På en dansk Windows XP er de tilsvarende betegnelser for de to fjernopkoblingsmuligheder Fjernsupport (Remote Assistance) og Fjernskrivebord (Remote Desktop).
>TOP


4. Fjernstyring med Internet browser


Det er også muligt at benytte en nyere Internet browser som VNC viewer, blot skal den være Java enablet, f.eks. en nyere Microsoft Internet Explorer.
VNC Server indeholder en Java baseret Web server der kører på port nummer 5800 (+ "Display Number"). Det er således muligt at tilgå sin VNC Server med en ganske almindelig Internet Explorer, man angiver bare IP-adresse:58xx som serverside, f.eks. http://213.214.11.47:5817.


Har man flere PC bag samme router man gerne vil fjernstyre, konfigureres de med forskellig port nummer (5900 + "Display Number" med VNC-Viewer eller 5800 + "Display Number" med Internet browser). Ved at angive Display nummeret i vieweren (:xx efter IP adressen, :58xx i browser) vælges således hvilken PC der skal fjernstyres, man skal blot huske at der skal laves en portmapning i routeren til hver af dem.

Bemærk at for at få adgang til en VNC Host med Internet Browser via ADSL, skal både 59xx og 58xx porten mappes, f.eks. således (fiktive adresser):
SET NAT ENTRY ADD  192.168.1.11  5917  213.214.11.47  5917  TCP
SET NAT ENTRY ADD  192.168.1.11  5817  213.214.11.47  5817  TCP


Herved afsluttes gennemgangen af installation af VNC - Virtual Network Computer. Husk at checke følgede links for yderligere information:
VNC - Virtual Network Computing from AT&T Laboratories Cambridge
VNC Frequently Asked Questions (FAQ).
Downloading VNC.

>TOP


5. Avanceret konfiguration
Den officielle VNC manual indeholder information om mere avancerede opsætningsmuligheder af VNC, se mere på
VNC - Virtual Network Computing from AT&T Laboratories Cambridge

Endvidere har Lars Kim Lund beskæftiget sig med de mere avancerede muligheder i VNC og om Windows NT/2000 system administration i særdeleshed, herunder Kix og hvorledes VNC kan installeres automatisk vha. scripts. Se Lars Kim Lund's anbefalinger herom i tråden "VNC - automatisk distribution og admin i et blandet windows-miljø" (News: dk.edb.sysadmin).

>TOP


6. Sådan virker NAT

Network Address Translation benyttes til at oversætte IP adresser, således at man på et netværk kan benytte sine egne interne adresser og udadtil nøjes med at benytte én (eller evt. flere) IP adresser. Oversættelsen udføres af en NAT editor for den specifikke IP protokol, i en PC der kører ICS eller i en dedikeret router med NAT. NAT implementeres som forenklet skitseret i følgende:


1) PC sender en forespørgsel til en Internet server, IP pakken indeholder adressen på modtageren (Destination) og dens egen afsenderaadrese (Source). IP pakken sendes til Default Gateway (ICS/NAT).
2) NAT editoren i ICS/NAT ændrer Source adressen + Source Port# til dens egen offentlige IP adresse og en dynamisk port (f.eks. 3678). Dette gemmes i dens dynamiske NAT Routing tabel.
3)
Internet serveren opfylder forespørgslen og returnerer data til den IP der var angivet som Source (ICS/NAT maskinen).
4) ICS/NAT maskinen ser på den indkomne pakke's Port#, laver et opslag i den dynamiske NAT tabel for at finde den rigtige modtager, ændrer destinations IP adresse + Port# og sender pakken til den PC der skal modtage pakken.

Altså såre enkelt, på indkomne returpakker slås op i den dynamiske NAT tabel for at se hvilken PC (IP adresse) pakken skal leveres til. For indkommende trafik der ikke er returtrafik, slås op i den statiske NAT tabel, for at se hvor pakker skal levereres (f.eks. FTP trafik på port 20/21 til 192.168.0.14).

>TOP  >HOME


Indholdet på "Bjarne Duelund's PC-Info" er © 1999-2006 Bjarne Duelund. Kopiering uden samtykke er forbudt efter ophavsretsloven.