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.
Bij de installatie heb je gekozen om de enige gebruiker die je diende aan te maken, ook automatisch te laten aanmelden.
Hierdoor staat er al een gebruiker klaar alsook een desktop.
We maken gebruik van X11vnc om ditzelfde scherm en gebruiker vanop afstand te kunnen gebruiken, zonder verschil, waardoor je naadloos tussen verschillende remote sessie kan schakelen en telkens hetzelfde scherm ziet.
Het is alsof je een monitor/toetsenbord/muis via een KVM switch hebt aangesloten.
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 in de verborgen folder binnen de homedir van de gebruiker (hier on4rst)
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 26 kan je testen door eenvoudig het programma te starten.
sudo x11vnc -display :0 -forever -loop -noxdamage -repeat -shared -rfbport 5900 -rfbauth /home/on4rst/.vnc/passwd
sudo x11vnc
Hierna kan je remote access krijgen zonder login etc.
Om ervoor te zorgen dat X11vnc steeds start na het inloggen van deze enige gebruiker, maken we een desktop autostart applicatie.
Dit kan perfect via de terminal maar ook met de Feader text editor.
Maak een verborgen autostart folder aan in de home folder van deze gebruiker.
mkdir -p ~/.config/autostart
maak hierin een file aan met naam: x11vnc.desktop
nano ~/.config/autostart/x11vnc.desktop
Vul deze file met de volgende gegevens:
[Desktop Entry]
Type=Application
Name=X11VNC Headless Server
Exec=/usr/bin/x11vnc -forever -loop -noxdamage -repeat -shared -rfbport 5900 -rfbauth /home/on4rst/.vnc/passwd
NoDisplay=true
X-GNOME-Autostart-enabled=true
Herstart de NUC
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.Nu zou je remote met het aangemaakte paswoord moeten kunnen inloggen.
Ondanks dat tightVNC wel degelijk een filetransfer protocol aan boord heeft, is de versie die in X11vnc zit een oude versie en die zal niet werken op een nieuwe TightVNCclient.
De simpelste methode om tijdelijk een filetransfer op te zetten is met behulp van python:
Start op de linux host een http server:
python3 -m http.server 8000
Op de client kan je nu via http toegang krijgen om files te downloaden, handig als backup van scripts.
http://<ip-address-nuc>:8000
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.
scp /local/path/file.txt username@remote_host:/remote/path/
scp username@remote_host:/remote/path/file.txt /local/path/
scp usernameA@serverA:/path/file.txt usernameB@serverB:/destination/path/
scp -r /local/directory username@remote_host:/remote/directory/
voorbeeld tussen Linux en Windows
scp -r on4rst@10.99.25.165:~/.config "c:\Users\machi\Downloads"
sinds de laatste updates van X11 wordt de video output gestopt als er geen fysieke monitor aan de PC hangt.
Hierdoor zal een VNC sessie een nagenoeg zwart scherm geven, niet wat je gewend bent met een monitor.
Om dit op te lossen kan je een virtuele monitor aansluiten, waardoor je via je VNC een volwaardig scherm krijgt, alsof het een monitor is.
Het nadeel is wel dat het echter scherm geen "output" meer geeft, je hebt dus een extra laptop-tablet of smartphone nodig, maar het geeft je wel de mogelijkheid om "in the field" een opzet te maken, door slechts de voeding op de NUC aan te sluiten om bijvoorbeeld een OpenWebSDR te draaien.
sudo apt update && sudo apt install xserver-xorg-video-dummy
sudo nano /etc/X11/xorg.conf.d/20-dummy.conf
Zet de volgende gegevens in de file en bewaar met Ctrl+o en ctrl+x
Section "Device"
Identifier "DummyDevice"
Driver "dummy"
VideoRam 256000
EndSection
Section "Monitor"
Identifier "DummyMonitor"
HorizSync 28.0 - 80.0
VertRefresh 48.0 - 75.0
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
EndSection
Section "Screen"
Identifier "DummyScreen"
Device "DummyDevice"
Monitor "DummyMonitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080_60.00"
EndSubSection
EndSection
Shutdown -reboot
Vanaf nu zal je enkel via vnc een volwaardige disply hebben ongeacht of je de monitor aansluit of niet.