De keuze voor X11vnc als remote desktop geeft je de mogelijkheid om je Linux te benaderen alsof er een scherm/toetsenbord/muis aanhangt vanop afstand.
Andere "remote desktop" toepassingen laten je meestal inloggen als een "gebruiker" op een linux installatie, zodat je niet naadloos tussen schermen of meerdere verbindingen kan schakelen.
Dit is noodzakelijk bij "server of multi-user" installaties, maar ongewenst in onze toepassing.
Aangeraden viewer voor vanuit windows te gebruiken: Tightvnc
De grafische tools voor configuratie en installatie in recente versies van Lubuntu laten nogal wat steken vallen, vandaar dat we de installatie via een console of terminal gaan doen.
Open een terminal via System Tools/Qterminal (Ctrl+Alt+T)
Update packages
sudo apt-get update
Installeer X11vnc
sudo apt install x11vnc
Zet een paswoord voor X11vnc
x11vnc -storepasswd
Het paswoord wordt niet getoond tijdens het ingeven, ook de cursor gaat niet vooruit.
Dus geef het in en druk op enter, geef dan de verify hetzelfde in en nogmaals op enter.
Er wordt je gevraagd om het paswoord in je home folder te bewaren.
Bevestig dit met Y en onthoud hoe de file noemt (/home/walter/.vnc/passwd).
Nu kan je X11vnc opstarten dmv het volgende commando en testen.
In dit commando wordt er verwezen naar de passwoord file.
Het IP adres van je PC bekom je via het commando:
ifconfig
De TightVNC zet je op naar het ip adres van je Linux PC.
Het gebruik op Ubuntu 22 kan je testen door eenvoudig het programma te starten.
sudo x11vnc
Hierna kan je remote access krijgen zonder login etc.
Om ervoor te zorgen dat X11vnc steeds start bij het opstarten van de PC moet er een script worden aangemaakt in etc/init/
Ga met de filemanager naar de betreffende folder
De filemanager vind je onder Accessories/PCManFM-Qt en via de / kan je terug in de root komen om zo af te dalen in de etc/init folder.
2. Open de folder als Root, om de volle schrijfrechten te krijgen.
Dit kan je via het tools menu/open as root
3. Maak een nieuwe file aan x11vnc.conf via RM.Create New/Blank file
4. Open de file met een editor, zoals FeatherPad, zodat we de nodige tekst erin kunnen plaatsen.
5. Plaats de volgende code, degene die je gebruikt hebt voor het testen, in deze file.(kan met copy paste via vnc viewer)
# description "Start x11vnc on system boot"
description "x11vnc"
start on runlevel [2345]
stop on runlevel [^2345]
console log
respawn
respawn limit 20 5
exec /usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/walter/.vnc/passwd -rfbport 5900 -shared
6. Installatie van een service maakt het geheel nog beter.
Hiervoor maak je een file aan in /etc/systemd/system met de naam X11vnc.service.
7. Plaats het volgende in deze file, met de vervanging door jouw username in het path.
[Unit]
Description=x11vnc remote desktop server
After=multi-user.target
[Service]
User=walter
Group=walter
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/walter/.vnc/passwd -rfbport 5900 -shared
Restart=on-failure
[Install]
WantedBy=multi-user.target
Het expliciet vermelden van de user/group voorkomt dat bij een systeem als linux, dat toegangsrechten sterk afdwingt, de toegang tot de desktop wordt verhindert.
Vermits het systeem is opgezet door de user “walter” en deze ook toegang heeft tot de desktop, omzeil je zo dit probleem als er vanop afstand wordt gewerkt.
Doe je dit niet, dan zal het systeem standaard de user ‘root’ gebruiken, die niet noodzakelijk de eigenaar is van de desktop.
8. Stop de vorige X11vnc sessie (ctrl+c in terminal waar hij draait) en
Start de service en test het uit met een vnc client. (denk aan juiste schijfwijze! Upper/lowercase is verschillend in Linux)
sudo systemctl start X11vnc
9. Controleer de status
sudo systemctl status X11vnc
10. met ctrl-c kan je de service verlaten.
11. Enable de service bij boot dmv het volgende commando
sudo systemctl enable X11vnc.service
12. Herstart je PC om te kijken of de automatische opstart van X11vnc werkt
Hiermee heb je een mogelijkheid om de rest van de installatie te kunnen doen, zonder scherm, toetsenbord en muis.
Tevens kan je dmv de Copy-Paste mogelijkheid in VNC delen van code selecteren op je PC waar deze websites staat en plakken in het VNC venster naar je linux toe, zeker handig als je niet alles wil typen.
Opmerking:
De copy-paste werkt enkel vanuit windows wanneer je slechts één TightVNC sessie hebt draaien.
Start je vanuit je windows PC meerdere sessies op naar verschillende NUC's zoals ik meestal werk, dan dien je eerst alles te sluiten en de verbinding met je Linux terug te starten alvorens de copy-paste werkt.
Het is handig om als laatste redmiddel een SSH server te laten draaien, waardoor je via een command line eventueel de PC kunt rebooten, als de X11vnc sessie niet meer zou werken.
De service vraagt zeer weining instellingen en in principe is dit bruikbaar vanaf de local lan.
Als je dit via internet wil kunnen toepassen, zal je in de firewall ook de poort 22 moeten open zetten.
sudo apt-get install openssh-server
Dit kan ook via de muon package manager
Geef in een terminal het volgende commando:
ssh localhost
Bevestig de vraag voor unknown fingerprint met "yes", zodat je kan inloggen op je eigen PC (zinloos, maar als test bruikbaar)
Herhaal deze oefening vanop een andere PC, desnoods een Windows PC vanuit de command prompt:
ssh username@ip-address.
vb ssh walter@10.99.78.70
Je krijgt nu de prompt om in te loggen met dezelfde fingerpring vraag.
Beantwoord deze eveneens met "yes" en geef je paswoord op.
Indien je je PC wil herstarten kan je gebruik maken van het volgende commando:
sudo shutdown -r now
waarna er naar je admin paswoord wordt gevraagd.