Kategorier
Tips og triks

Få tilgang til skrivebord via internett

Nylig fikk jeg behov for å tå tilgang til å styre en PC stående i et NAT-et nett der jeg ikke har tilgang til brannmur og portoppsett. Jeg så for meg en løsning à la LogMeIn, men siden akkurat den tjenesten ikke er å få brukt i Linux måtte jeg søke opp alternativer.

Selv om det finnes veldig mange fine applikasjoner til kundestøtteformål (gitso, Remote Help Assistant), var det få som omgikk NAT-ede nettverk på noe vis. Hamachi og NoMachine NX hadde dog vært en mulighet. Jeg valgte i stedet en hjemmesnekret løsning som jeg kan kontrollere selv ved hjelp av SSH-tunnel og VNC.

Ubuntu har i seg selv støtte for eksternt skrivebord ved hjelp av vino. Oppsett av dette gjøres via System -> Innstillinger -> Eksternt skrivebord.

Deretter setter man opp en SSH-tunnel fra PC-en du vil nå fra nettet til en Linux-server du disponerer (hallo, alle har da dette?)

ssh -R 5090:localhost:5090 <server>

Deretter, fra et tilfeldig sted i den vide verdensveven

vncviewer -via <server> localhost

Om du for eksempel ønsker at dette skal være en permanent løsning som holder seg koblet til serveren, sleng inn følgende i en crontab, da vel:

@reboot while true; do ssh -q -R 5090:localhost:5090 <server>; sleep 10; done

Loopen starter ved oppstart av maskinen og den vil prøve å koble til på nytt om nettet forsvinner.