X2Go voor remote gebruik van grafische Linux-toepassingen

Noud van Kruysbergen
1

Inhoudsopgave

Veel interessante software is er alleen voor Linux, zoals Shotwell voor het bewerken en beheren van foto’s. Met X2Go kun je dergelijke programma’s op een Linux-computer remote gebruiken, ook als je met een Windows-pc of een Mac werkt. Zelfs een langzame netwerkverbinding is voor X2Go geen probleem. We laten zien hoe je X2Go instellen en gebruiken kunt.

Grafische toepassingen via een te langzame internetverbinding stotteren en haperen aan de lopende band. X2Go biedt dan hulp, want daarmee kun je Linux-programma’s en zelfs hele desktops vloeiend bedienen via verbindingen met een hoge latentie of lage bandbreedte. Een bijzondere eigenschap van X2Go is dat sessies onderbroken kunnen worden en op een andere computer weer kunnen worden voortgezet. Het is ook te gebruiken voor computers die wel grafische toepassingen beschikbaar stellen, maar verder zonder beeldscherm en invoerapparaat draaien. Ten opzichte van traditionele X11-forwarding via SSH heb je daarbij geen gedoe met de commandline. Het populaire VNC gebruikt aanzienlijk meer bandbreedte om soepel te kunnen werken.

X2Go is nog het beste te vergelijken met de uit de Windows-wereld bekende remote-application-oplossingen van het bedrijf Citrix – maar dan voor een Linux-server. Het voert grafische toepassingen op een server uit en toont de weergave van het programma op een client­computer. Terwijl de server het zware werk doet, hoeft de client alleen maar de interface te tekenen. X2Go gebruikt daarbij verschillende trucs zoals caching en compressie van afbeeldingen om verbindingen met een smalle bandbreedte beter te benutten. Bovendien worden ook bestanden, printers en geluid doorgestuurd.

X2Go remote gebruik grafische Linux-toepassing Ubuntu op Windows client

De Windows-client laat Firefox en Shotwell wel zien, maar in feite voert de Ubuntu-server ze uit.

Aan de slag

We laten zien hoe met behulp van X2Go een Linux-programma remote is te gebruiken op een Windows-pc en hoe je de mappen op een Windows-client kunt vrijgeven voor de Linux-toepassing. We gaan daarbij uit van een omgeving die bestaat uit een Ubuntu 18.04 LTS Desktop Edition (64-bit) als server en een Windows 10-pc als client. Linux en macOS kunnen echter net zo goed als client fungeren.

Een vernieuwing die in Ubuntu 18.04 LTS is geslopen, is de bij het X2Go-project behorende X2GoServer. In eerdere Ubuntu-­releases zat alleen een verouderde versie van de X2GoClient. In de officiële repository’s van Debian 9 (Stretch) heeft X2GoServer het helaas niet gehaald. Voor Debian 10 (Buster) wordt ervan uitgegaan dat X2Go ook in de officiële repository’s belandt. Voor OpenSuse, Fedora en Arch Linux is X2Go eveneens als client en als server beschikbaar.

X2Go installeren

De serverinstallatie is bij Ubuntu zoals altijd lekker overzichtelijk:

sudo apt install x2goserver x2goserver-xsession

Op systemen die aanbevolen pakketten (‘recommends’) niet automatisch installeren, moet je eerst het pakket sshfs nog installeren als je het versturen van bestanden en printerdata wilt gebruiken:

sudo apt install sshfs

Om ervoor te zorgen dat X2Go functioneert, moet de SSH-poort 22 bereikbaar zijn. Bij Ubuntu is dat normaal gesproken zo, bij andere distributies moet je de instellingen van de firewall controleren.

Het installeren van de client is snel gedaan:

sudo apt install x2goclient

Als je X2Go met een oudere Ubuntu-versie of een andere distributie wilt uitproberen, staan de installatiehandleidingen op de X2Go-wiki bij het onderwerp ‘Installing X2Go‘. De Windows- en macOS-versies van de X2Go-client kun je vinden bij het deel ‘Get X2Go‘ en rechtstreeks down­loaden van de startpagina van het project.

Programma via X2Go

We gebruiken in dit geval het opensource beeld­bewerkingsprogramma Shotwell als eenvoudig voorbeeldprogramma, want dat programma is op dit moment alleen voor Linux beschikbaar. Als Shotwell nog niet op de Linux-computer geïnstalleerd is, kun je dat op de volgende manier alsnog doen:

sudo apt install shotwell

Op de Windows-pc start je alleen de X2GoClient. Bij de eerste start verschijnen twee meldingen van de firewall van Windows over de SSH-daemon sshd en de soundserver pulseaudio. Die moet je allebei weigeren omdat de betreffende programma’s alleen op een lokaal loopback-adres voor de X2GoClient bereikbaar moeten zijn – die van buitenaf of binnen een netwerk open stellen is een onnodig veiligheidsrisico.

Als de client de eerste keer start, wanneer er dus nog helemaal geen sessie­profielen voorhanden zijn, opent automatisch een dialoog voor het aanmaken van een sessieprofiel. Andere sessieprofielen kun je aanmaken via het menu-item ‘Sessie / Nieuwe sessie’. Voor Shotwell kun je als sessienaam simpelweg ‘Shotwell’ gebruiken. Het standaard pictogram voor nieuwe sessies is een rob, de mascotte van X2Go. Als je op dat pictogram klikt, kun je voor het beter uit elkaar houden van verschillende sessies een willekeurig ander pictogram instellen. In het veld ‘Host’ moet de DNS-naam of het ip-adres van de Ubuntu-­computer komen te staan. In het veld ‘Inloggen’ vul je op de Ubuntu-server de naam van de gebruiker in. Als je het leeg laat, dan vraagt X2Go bij een aanmeldpoging zowel naar de gebruikersnaam als het wachtwoord.

X2Go sessievoorkeuren remote gebruik grafische Linux-toepassing Shotwell

De sessievoorkeuren van X2Go voor het remote werken met Shotwell.

Helemaal onderaan verander je het sessietype in ‘Enkele applicatie’. Daarna overschrijf je de tekst in het veld ‘Commando’ met de tekst shotwell. Laat je daarbij niet afleiden door de drop-downpijl aan het eind van het veld – als je op dat pijltje klikt, stelt X2Go je wel verschillende programma’s voor, maar je kunt ook gewoon zelf een naam typen. Het aangeven van een absoluut programmapad is normaal gesproken niet nodig, maar wordt eveneens ondersteund.

Lokaal testen

Als je met testen in je lokale netwerk begint, dan ben je niet aangewezen op de versnellingsfuncties van X2Go. Daarom is het aan te raden naar het tabblad ‘Verbinding’ te gaan en daar de schuifregelaar ‘Verbindingssnelheid’ vervolgens helemaal naar rechts naar ‘LAN’ te schuiven. Andere sessie-instellingen zijn voor de eerste keer niet nodig. Ter afsluiting klik je op ‘OK’.
Voor een eerste verbindingspoging moet je in het menu van de X2GoClient het item ‘Opties / Instellingen’ openen en op het tabblad ‘Algemeen’ een vinkje zetten bij ‘Icoon in taakbalk weergeven’. Datzelfde doe je bij de vier daarna niet meer grijze sub-items. Hierdoor neemt de X2GoClient na een succesvolle verbindingsopbouw geen onnodige plek in op het beeldscherm of op de Taakbalk, maar verschijnt hij alleen als pictogram in het systeemvak.

Dan kun je aan de slag met de eerste test: klik op het sessiepictogram op de witte sessietegel aan de rechterkant van het clientvenster om het aanmeldingsvenster tevoorschijn te toveren. Na het invoeren van het wachtwoord verschijnt nog een vraag van de firewall van Windows over de X-server VcXsrv, die je net als de eerdere Firewall-meldingen moet weigeren. Daarna verdwijnt de client naar de taakbalk. In het begin wordt het generieke ‘Accelerated X’-logo van X2Go daar getoond, maar na een kort moment verandert het pictogram in het gekozen sessiepictogram, begeleid door een melding dat de sessie succesvol gestart is. Daarna moet ook het Shotwell-venster al op de desktop van Windows verschijnen.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Bestanden op de client

De afbeeldingen die Shotwell moet gaan beheren, staan in een map op de Windows-pc. Om ervoor te zorgen dat die fotobestanden niet tussen de beide systemen heen en weer gekopieerd hoeven te worden, moet je de X2GoClient zodanig instellen dat hij het bestands­systeem van de Windows-pc bereikbaar maakt voor het Ubuntu-systeem.

De betreffende configuratie-opties staan op het tabblad ‘Gedeelde mappen’ bij de sessieconfiguratie. Die open je door tijdens een draaiende sessie simpelweg met de rechter muisknop te klikken op het sessiepictogram in het systeemvak. Selecteer in het menu dat opent de sessie­naam (gebruik daar bijvoorbeeld ‘Shotwell’ voor) en het menu-­item ‘Gedeelde map’, ‘Voorkeuren’. Als alternatief kun je ook vóór het starten van de sessie klikken op het hamburgermenu in de hoek rechtsonder van de sessie­tegel en ‘Sessie voorkeuren’ kiezen. Ga bij de sessie-instellingen naar het tabblad ‘Gedeelde mappen’. Klik op het mappictogram rechts van het invoerveld voor het pad en selecteer de gewenste map. Vervolgens ga je naar ‘Toevoegen’ en zet je een vinkje bij ‘Automatisch aankoppelen’.

X2Go remote gebruik grafische Linux-toepassing Windows-pad padnaam lengte

X2Go zet de lange Windows-paden onder Linux om in DOS-achtige namen.

Optioneel kun je onderaan het dialoog­venster een bestandsnaamconversie activeren voor verschillende tekensets, als er problemen zijn met bijvoorbeeld umlauten in de bestandsnamen. Die conversie geldt alleen voor bestandsnamen, niet voor de inhoud van die bestanden. Het vinkje dat daaronder staat heeft betrekking op de SSH-port-forwarding: dat moet je niet verwijderen omdat bestands- en printershares dan niet meer zouden werken. Klik ten slotte op OK. Als je de aanpassingen bij een draaiende sessie gedaan hebt, klik je in het nog geopende dialoogvenster ‘Gedeelde mappen’ op ‘delen’. De instellingen zijn blijvend, ook als je ze tijdens een draaiende sessie doet.

Voor een eerste test kun je een map gebruiken met voorbeeldafbeeldingen. Bij Windows 10 zullen in C:\Windows\Web\Wallpaper wat achtergrondafbeeldingen staan (bij Windows 7 is dat dan C:\Users\Public­\Pictures\Sample Pictures).

Als je alles op de juiste manier ingesteld hebt, zal bij Shotwell na een klik op ‘File / Import From Folder’ de home-directory tonen van de gebruiker op het Ubuntu-systeem. Daar staat nu de nieuwe subdirectory media, waarin de door X2Go gekoppelde mappen zich bevinden. De map met de achtergrondafbeeldingen van Windows staat dan in /media/disk/
_cygdrive_C_Windows_Web_WALLPA1. De naam van het basispad wordt door X2Go afgekort, net als bij de 8.3-bestandsnamen van oude FAT-systemen, tot zes tekens met grote letters en een telkens oplopend nummer. Bij Windows wordt nog het deel _cygdrive_ ervoor gezet. Voor bestands­namen en submappen geldt dat niet.

Als je de juiste mappen hebt geselecteerd, vraagt Shotwell of je de afbeeldingen wilt kopiëren of dat je daar links naar wilt aanmaken. Omdat het doel is om geen bestanden heen en weer te kopiëren, kies je hier voor ‘Import in Place’. Korte tijd later is het importeren klaar en presenteert Shotwell de afbeeldingen zodanig dat het lijkt alsof ze op het lokale Ubuntu-systeem staan.

Meerdere applicaties

Het nadeel van deze manier van werken is dat de X2Go-sessie beëindigd wordt als je Shotwell afsluit. Als je dat weer wilt starten, moet je je ook weer aanmelden. Voor andere programma’s die je wilt gebruiken, moet je telkens een nieuwe sessie configureren en je per toepassing apart aanmelden. Dat is niet echt handig.

Gelukkig is dat anders te doen door een nieuwe sessie met ‘Gepubliceerde applicaties’ aan te maken. Als je je daar bij aanmeldt, lijkt er in eerste instantie niets te gebeuren – afgezien van de melding dat er een nieuwe sessie gestart is.

Als je bij X2GoClient aangegeven hebt dat hij zich in het systeemvak moet terugtrekken, dan zie je met een rechter muisklik op het sessiepictogram alle applicaties vermeld die lokaal in het startmenu van je Ubuntu-systeem staan. Je kunt ook bij dat remote-startmenu komen via het nieuw toegevoegde vierde pictogram (‘Applicaties’) links van de andere pictogrammen onderaan de sessietegel.

Aan de kant van de server heeft de modus ‘Gepubliceerde applicaties’ het voordeel dat er geen complete desktop­omgeving als Gnome of KDE in het geheugen hoeft te worden geladen en er daardoor meer werkgeheugen vrij blijft voor programma’s. Op de client heb je het voordeel dat de Linux-programma’s bijna naadloos integreren in de Windows-omgeving – en dat je je maar één keer hoeft aan te melden.

X2Go sessie sessietegel remote gebruik grafische Linux-toepassing

Via de sessie­tegels in X2Go­Client kun je alle instellingen aanpassen en verbindingen starten.

Andere mogelijkheden

Je kunt met X2Go ook een complete desktop­omgeving beschikbaar stellen. Dat werkt ook op computers die wat minder krachtig zijn en werkt zowel full-screen als in een venstermodus. Verder kan X2Go een sessie (of dat nu een desktop is of een afzonderlijke of gepubliceerde applicatie) beëindigen en later weer op hetzelfde punt voortzetten. Daarbij lopen de programma’s op de server gewoon door. Op die manier kun je ook vanaf een totaal andere werkplek doorgaan waar je gebleven was. Meer hierover, de beste browser voor gebruik via X2Go (Pale Moon), problemen met Wayland en gebruik op ARM-systemen zoals een Raspberry Pi 3B+ lees je in het novembernummer van c’t magazine, vanaf pagina 137.

Lees meer over X2Go in c't Magazine nov/2018

Als je dieper in X2Go wilt duiken, kun je op de project-wiki en de bijbehorende community veel meer informatie vinden, bijvoorbeeld over het doorsturen van printers, het gebruik als RDP-proxy of de inzet van een complete X2Go-serverfarm.

(Stefan Bauer, c’t magazine)

Deel dit artikel

Lees ook

Let’s Encrypt en Nginx combineren

Als je niet alles wilt dockeren, kun je een kant-en-klare container­image gebruiken voor een Nginx-reverse-proxy en het automatisch verkrijgen van cer...

Optimale pc bouwen – onderdelen kiezen

We geven tips voor het kiezen van de juiste onderdelen voor een optimale pc bouwen. Van een processor met genoeg cores tot de grafische kaart, ssd en ...

1 Praat mee

1

avatar
  Abonneer  
nieuwsteoudste
Laat het mij weten wanneer er
harry Cornelis
Lezer
harry Cornelis

Ik heb X2Go server geïnstalleerd zowel op CentOS 7 als op Ubuntu 18.10. Het werkt op beide behalve de printers. Ik kan wel een PDF laten aanmaken en dit dan door een AdobeAcrobatReader commando laten afdrukken op de standaardprinter maar rechtstreeks afdrukken op de gedefinieerde printers van de Windows client werkt niet. Moet ik de printers op de client delen om deze beschikbaar te maken voor de x2Go-server?