xrdp op Ubuntu met Mate desktop

Remote desktop (ook op Linux)

nerd alertVroeger (in de 20e eeuw) gebruikte je pcAnywhere om via analoge telefoonmodems in te loggen op je dos computer die ergens anders stond. Je deed dat bijvoorbeeld, omdat op die computer een bestand stond dat je nodig had.

Tegenwoordig is het gemakkelijk om via internet zelfs grote bestanden te delen, of ze op een USB stick mee te nemen. Heeft het nog nut om remote in te loggen op een computer? Ik geef een paar handige voorbeelden.

Waarom een remote desktop?

Natuurlijk is de wereld veranderd. Een bestand dat je misschien later nodig hebt, verstuur je voor de zekerheid alvast naar jezelf per e-mail, je neemt het mee op een USB stick, of je zet het op je nas, of het staat gewoon ergens in de cloud. Allemaal oplossingen die vorige eeuw nog niet bestonden (of veel te duur waren).

Toch kan het nog steeds handig zijn om remote toegang te hebben tot een computer. Bijvoorbeeld:

  • Windows of Linux op je tablet
    Met behulp van remote desktop kan je een volwaardige Windows of Linux desktop gebruiken op een tablet of mini-PC, ook als deze niet op een Intel processor draait;
  • Beveiliging tegen internet van buiten naar binnen
    Gebruik als jumpserver: via een remote desktop op je homeserver kan je alle apparaten in je lokale netwerk bereiken, die je niet rechtstreeks op het internet wilt aansluiten;
  • Beveiliging tegen internet van binnen naar buiten
    Ga je dubieuze websites bezoeken, doe dat dan via een remote desktop op een computer waar verder niets op staat — eventuele besmettingen kunnen niet via de remote desktop in je normale werkstation komen (dit is een alternatief voor gebruik van een lokale virtuele machine);
  • Applicatieserver
    Je hoeft een applicatie niet op elke computer te installeren, om hem toch op elke computer te kunnen gebruiken — je wilt bijvoorbeeld misschien niet een e-mailclient, met al je e-mail passwords, installeren op de PC van je werk;
  • Alternatief voor een dockingstation
    Gebruik een laptop met het comfortabele beeldscherm en toetsenbord van je desktop.

Varianten

Er bestaan een paar methoden voor een remote desktop:

  • Systeem console
    Je ziet een kopie van het beeldscherm dat op de server aangesloten is. Als iemand het beeldscherm aanzet, kan hij meekijken met wat je aan het doen bent. Logischerwijs kan er dus maar 1 remote desktop sessie actief zijn;
  • Virtuele desktop
    Voor elke remote desktop sessie maakt de server een extra desktop in het geheugen, er kunnen dus in theorie meerdere mensen tegelijk werken op één computer, elk met hun eigen instellingen;
  • Virtueel window
    Je ziet niet een desktop (full-screen), maar alleen een window waarin je applicatie draait. Dit kan een tekstscherm zijn of een grafisch window.

In de tweede helft van deze blog stel ik een aantal Remote Desktop toepassingen voor. Er bestaan er heel veel, maar deze vind ik handig werken.

NoMachine

Soort: systeem console
Port forwarding: 4000 TCP

Een redelijk nieuw programma is NoMachine, soms ook bekend onder de naam van het protocol: nx. Misschien onnodig om te noemen dat het niets kost, ontzettend veel mogelijkheden heeft en prima werkt op alle moderne Operating Systems. Op het plaatje hieronder zie je dat ik hem gebruik op een computer waar een oude monitor op aangesloten is:

no-machine inlogscherm
NoMachine: weergeven van een 4:3 inlogscherm op een 16:9 client

IPMI

Soort: systeem console

Nog een stap verder dan een remote desktop, is remote management: via IPMI kan je de computer opnieuw opstarten als hij is vastgelopen, het bootscherm bekijken, BIOS instellingen aanpassen en een andere virtuele DVD mounten waarvan dit systeem moet opstarten. Er hoeft geen toetsenbord of monitor op het systeem aangesloten te zijn, je kunt alles via het netwerk doen.

Er moet wel hardware voor IPMI op het moederbord ingebouwd zijn en meestal heeft deze hardware een individuele netwerkaansluiting. In het algemeen hebben alleen moederborden dit, die speciaal bedoeld zijn voor servers, maar die zijn gelukkig gewoon los te koop.

RDP

Soort: virtuele desktop
Port forwarding: 3389 TCP en 3389 UDP

Dit is een protocol van Microsoft, maar het werkt ook verbazingwekkend goed op Android en Linux. Erg handig is dat elke Windows computer al standaard een client aan boord heeft: mstsc (afkorting voor: „Terminal Server Client”). Alleen de duurdere versies van Windows hebben ook een RDP server ingebouwd: je hoeft dan alleen het vinkje delen van desktop aan te zetten om je computer bereikbaar te maken.

Je kunt RDP gebruiken op Android, zie mijn blog Remote Desktop in Android (Windows RDP). Ik vind dat de beste RDP client voor Android momenteel toch nog steeds de client van Microsoft zelf is. Ubuntu heeft Remmina standaard ingebouwd als RDP client en deze werkt prima om verbinding te maken met een Windows systeem.

Tip: Remmina kan automatisch een SSH tunnel opzetten; als je de poort voor SSH al open hebt staan op de server, kan je de poorten voor RDP gewoon op slot laten.

De server op Linux (xrdp) is helaas iets lastiger te gebruiken, vanwege twee bugs:

  • de RDP client van Microsoft op Android kan niet tegen een van de bugs in xrdp, je moet dus een andere Android client gebruiken (bijvoorbeeld aFreeRDP);
  • xrdp werkt niet goed samen met de standaard desktop van Ubuntu, zodat je speciaal hiervoor een extra desktop zult moeten installeren.

Het kost even wat moeite, maar als je het voor elkaar hebt dan werkt RDP op Linux ook heel erg goed:

xrdp op Ubuntu met Mate desktop
xrdp op Ubuntu met Maté desktop

Het voorbeeld hierboven is een RDP sessie op dezelfde computer als die ik in het NoMachine voorbeeld gebruikt heb. Als alternatieve desktop heb ik Maté geïnstalleerd en geconfigureerd voor alle xrdp sessies, de keuze ligt dus niet vast op user-niveau. Zoals je ziet op het htop scherm, is de overhead van het RDP protocol beperkt. Als je xrdp zelf ook wilt proberen, dan zijn dit twee pagina’s waar de technische details uitgelegd worden:

VNC

Soort: console desktop
Port forwarding: 5900 TCP

Voor Linux is VNC een methode voor een remote desktop, die al sinds de oertijd van desktops op Linux gebruikt wordt. Ik heb het bekeken, maar ik vind dat het een slechte beeldkwaliteit (JPG-achtig) geeft en ik vind het gewoon te langzaam voor vandaag de dag.

Voor meer informatie over VNC op Ubuntu zie: VNC/Servers

SSH

Soort: virtueel window
Port forwarding: 22 TCP

Met SSH begin je op een remote terminalscherm, maar dankzij Xwindows forwarding (de -X optie, als je het standaard ssh commando gebruikt) kan je op je eigen computer de windows bekijken van grafische applicaties die je op de andere computer start. Op die manier kan je zelfs applicaties als Thunderbird (mailclient) en KDEnlive (videoediting) remote draaien, al gaat het natuurlijk wel wat langzamer dan wanneer de applicatie lokaal geïnstalleerd is.

Het handige van SSH is dat je er meteen een sftp server bij krijgt en ook een manier om poorten door te sturen, een alternatief voor een VPN op je homeserver netwerk.

Wil je Xwindows (grafische Linux programma’s) remote gebruiken onder Windows, dan heb je op de Windows computer een server nodig om Xwindows te kunnen weergeven (bijvoorbeeld: Xming) en het je moet ook nog even de juiste instellingen configureren in puTTY.

Client op Windows: puTTY + Xming (ssh client + xserver) of Cygwin, FileZilla (sftp)

Server op Linux: open-ssh
Client op Linux: ssh

Server op Android: SSHDroid (alleen tekst)
Client voor Android: JuiceSSH (alleen tekst)

Een gedachte over “Remote desktop (ook op Linux)

Vertel jouw mening

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s