Netwerktoegang

Start dit hoofdstuk met een nieuwe reservekopie van de Basisimage.

IP-adres vervangen door computernaam

Thuisnetwerken werken met dynamische IP-adressen, met andere woorden het IP-adres van jouw Raspberry Pi zal regelmatig veranderen. Als je er dan even verbinding mee wilt maken, is het wel een heel gedoe om er een toetsenbord, muis en monitor op aan te sluiten om alleen het IP-adres te achterhalen. Zou het niet handiger zijn als je alleen de naam van de Raspberry Pi in de terminal hoeft in te typen om er verbinding mee te maken? Dat klinkt te mooi om waar te zijn, maar het kan in feite vrij gemakkelijk.

Je hebt alleen een stukje software nodig dat hosts en services in een lokaal netwerk niet met hun IP-adres laat zien, maar met hun naam. Multicast Domain Name System (mDNS) maakt het gebruik van computernamen (hostnames) in kleine netwerken mogelijk zonder centrale DNS-server (Domain Name Server). Het is een ZeroConf dienst waarbij je dus niets moet configureren en zonder problemen samen kan werken met bestaande DNS-servers.

Zowel Apple- (Bonjour) als Linux (Avahi) en Windows (vanaf Windows 10 1703) systemen ondersteunen standaard mDNS.

We illustreren dit door in de terminal een ping opdracht naar de Raspberry Pi te sturen. Op sommige besturingssystemen moet je ping afbreken met de toetscombinatie Ctrl+c.

dany@main:~$ ping raspberrypi.local
PING raspberrypi.local(2a02:a03f:e02a:8901:122d:5426:18c2:8565%2 (2a02:a03f:e02a:8901:122d:5426:18c2:8565%2)) 56 data bytes
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=1 ttl=64 time=1.26 ms
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=2 ttl=64 time=2.44 ms
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=3 ttl=64 time=2.55 ms
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=4 ttl=64 time=2.95 ms
^C
--- raspberrypi.local ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.257/2.300/2.951/0.631 ms

Merk op dat de ZeroConfnaam van de Raspberry Pi bestaat uit twee delen, de computernaam (hostname) raspberrypi en het domein local gescheiden door een punt. Elke ZeroConfnaam heeft als domeinnaam local. Merk ook op dat ZeroConf indien mogelijk de voorkeur heeft aan IPv6-adressen. Om het IPv4-adres van de Raspberry Pi te achterhalen, gebruik je de opdracht:

dany@main:~$ ping -4 raspberrypi.local
PING  (192.168.129.54) 56(84) bytes of data.
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=1 ttl=64 time=2.51 ms
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=2 ttl=64 time=6.35 ms
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=3 ttl=64 time=5.30 ms
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=4 ttl=64 time=3.05 ms
^C
---  ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.505/4.300/6.354/1.581 ms

Het spreekt voor zich dat als je meerdere Raspberry Pi's in huis hebt, je die best veelzeggende unieke computernamen geeft.

Virtual Network Computing

VNC (Virtual Network Computing is een systeem voor het grafisch delen van een scherm, toetsenbord en muis zodat een gebruiker vanaf zijn eigen computer het scherm van een andere computer kan bekijken en bedienen.

Dit heeft veel nuttige toepassingen: je kunt op afstand de controle overnemen van een systeem, bijvoorbeeld om een andere computergebruiker te helpen of om een netwerkcomputer te gebruiken zonder dat daar een beeldscherm, toetsenbord of muis hoeft aan te hangen.

In ons geval is het handig om toegang te hebben tot de Raspberry Pi zonder de bovengenoemde randapparatuur. Op deze manier kun je er alles op doen wat je normaal zou doen terwijl de Pi alleen aan het lichtnet en het netwerk is aangesloten. Dat scheelt ruimte en voorkomt het maken van extra kosten.

VNC kan je als volgt in Raspberry Pi OS activeren:

VNC Viewer

Raspberry Pi OS gebruikt standaard de WayVNC server, als Viewer kan je elke VNC Viewer gebruiken, in deze cursus gebruiken we RealVNC. Voor elk besturingssysteem kan je vanaf de RealVNC Viewer downloadpagina een gepaste viewer downloaden. Je kunt daarbij kiezen voor een installeerbare versie of een alleenstaande versie. Je moet om de RealVNC Viewer te gebruiken geen account aanmaken.

Bij de eerste start van VNC Viewer moet je verschillende dialoogvensters doorlopen:

De RealVNC Viewer is nu klaar voor gebruik:

Werken met de Real VNC Viewer/Server

Alle bewerkingen die je met de muis, het toetsenbord en een scherm op de Raspberry Pi kunt uitvoeren, kan je nu via het venster van de VNC Viewer. Uitgezonderd indien de beelden hardwareversnelling gebruiken (bijvoorbeeld bij het afspelen van video).

Bovenaan het VNC scherm zie je in het midden een klein gedeelte van een paneel dat uitvouwt door het aan te wijzen. Dit paneel bevat blauwe pictogrammen om schermvullend te werken; het scherm aan te passen aan het venster; de toetscombinatie Ctrl+Alt+Del, informatie weer te geven, de VNC Viewer in te stellen en de verbinding af te breken.
VNC werkbalk
Sommige functies werken enkel als je zowel de RealVNC server (betalend en werkt niet op de Raspberry Pi) als de RealVNC viewer gebruikt.

Praktijk opdracht
  1. Eerst zorgen we voor wat oefenmateriaal (een ZIP archief met foto's) op de Raspberry Pi.
    1. Download dit ZIP-archief met foto's.
    2. Start Filezilla en maak een SSH verbinding met jouw Raspberry Pi.
    3. Verplaats het gedownloade Zip-archief naar de map Downloads op de Raspberry Pi.
    4. OF Start op de Raspberry Pi de Web Browser en download het ZIP-archief op de Raspberry Pi.
    5. Start de RealVNC Viewer op jouw computer en maak een VNC verbinding naar de Raspberry Pi. Blijf verder werken via de VNC verbinding op jouw computer.
    6. Klik in de map Downloads met de rechtermuisknop op het ZIP archief Foto's.zip.
    7. Voer in het snelmenu de opdracht Hier uitpakken uit.
    8. Verplaats de uitgepakte map met Foto's naar de Pictures map in de Thuismap op de Raspberry Pi.
    9. Open in de map Foto's de eerste foto. Deze wordt geopend met de applicatie Oog van Mate.
    10. Om alle foto's in de Pictures map te bekijken, start je in het menu Venster een diavoorstelling.
    11. De diavoorstelling wordt schermvullend weergegeven. Zo maak je met een extra LCD-scherm voor de Raspberry Pi en het uitzoeken van prachtige aan de schermresolutie aangepaste foto's een prachtig fotokader.
    12. Druk Esc om de diavoorstelling in volledige schermweergave te verlaten.
    13. Een echt fotokader laat de foto's niet zo snel variëren. In het menu Bewerken met de Voorkeuren van het 'Oog van Mate' op het tabblad Diavoorstelling kan je de optie Wissel naar volgende afbeelding na in seconden instellen. Een rustig fotokader gebruikt tussenpozen van een uur en meer. Stel dit in op 60 seconden.
    14. Test de aanpassing.
    15. Sluit alle toepassingen en vensters op de Raspberry Pi.
    16. Sluit het VNC venster om de verbinding te verbreken.
  2. Nu je een VNC verbinding kunt opzetten, kan je via het onveilige internet jouw Raspberry Pi bedienen. Daarvoor heb je echter een externe dienst als dataplicity nodig. Je moet de bedrijven achter deze diensten dan wel vertrouwen. Raspberry Pi (het bedrijf) biedt zelf een versleutelde dienst aan:
    1. We starten met het obligate bijwerken van het systeem en de software. Start een terminal of SSH verbinding en voer de volgende opdrachten uit:
      pi@raspberrypi:~ $ sudo apt update
      Geraakt:1 http://deb.debian.org/debian bookworm InRelease
      Ophalen:2 http://deb.debian.org/debian-security bookworm-security InRelease [48,0 kB]
      Ophalen:3 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB]         
      Ophalen:4 http://archive.raspberrypi.com/debian bookworm InRelease [23,6 kB]                   
      Ophalen:5 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages [413 kB]
      Ophalen:6 http://archive.raspberrypi.com/debian bookworm/main armhf Packages [422 kB]
      859 kB opgehaald in 1s (620 kB/s)                        
      Pakketlijsten worden ingelezen... Klaar
      Boom van vereisten wordt opgebouwd... Klaar
      De statusinformatie wordt gelezen... Klaar 
      1 pakket kan opgewaardeerd worden. Voer 'apt list --upgradable' uit om het te zien.
      pi@raspberrypi:~ $ sudo apt upgrade
      Pakketlijsten worden ingelezen... Klaar
      Boom van vereisten wordt opgebouwd... Klaar
      De statusinformatie wordt gelezen... Klaar 
      Opwaardering wordt doorgerekend... Klaar
      De volgende pakketten zullen opgewaardeerd worden:
        raspberrypi-sys-mods
      1 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
      Er moeten 18,8 kB aan archieven opgehaald worden.
      Na deze bewerking zal er 1.024 B extra schijfruimte gebruikt worden.
      Wilt u doorgaan? [J/n] 
      Ophalen:1 http://archive.raspberrypi.com/debian bookworm/main arm64 raspberrypi-sys-mods arm64 20240527+1 [18,8 kB]
      18,8 kB opgehaald in 0s (62,5 kB/s)           
      De changelogs worden ingelezen... Klaar
      (Database wordt ingelezen ... 147626 bestanden en mappen momenteel geïnstalleerd.)
      Uitpakken van .../raspberrypi-sys-mods_20240527+1_arm64.deb wordt voorbereid...
      Bezig met uitpakken van raspberrypi-sys-mods (20240527+1) over (20240527) ...
      Instellen van raspberrypi-sys-mods (20240527+1) ...
      Bezig met afhandelen van triggers voor initramfs-tools (0.142) ...
      update-initramfs: Generating /boot/initrd.img-6.6.28+rpt-rpi-v8
      '/boot/initrd.img-6.6.28+rpt-rpi-v8' -> '/boot/firmware/initramfs8'
      update-initramfs: Generating /boot/initrd.img-6.6.28+rpt-rpi-2712
      '/boot/initrd.img-6.6.28+rpt-rpi-2712' -> '/boot/firmware/initramfs_2712'
      update-initramfs: Generating /boot/initrd.img-6.6.20+rpt-rpi-v8
      update-initramfs: Generating /boot/initrd.img-6.6.20+rpt-rpi-2712
    2. Installeer Raspberry Pi Connect met de volgende opdracht:
      pi@raspberrypi:~ $ sudo apt install rpi-connect
      Pakketlijsten worden ingelezen... Klaar
      Boom van vereisten wordt opgebouwd... Klaar
      De statusinformatie wordt gelezen... Klaar 
      De volgende NIEUWE pakketten zullen geïnstalleerd worden:
        rpi-connect
      0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
      Er moeten 7.281 kB aan archieven opgehaald worden.
      Na deze bewerking zal er 18,8 MB extra schijfruimte gebruikt worden.
      Ophalen:1 http://archive.raspberrypi.com/debian bookworm/main arm64 rpi-connect arm64 1.1.0 [7.281 kB]
      7.281 kB opgehaald in 2s (3.210 kB/s)                                              
      Voorheen niet geselecteerd pakket rpi-connect wordt geselecteerd.
      (Database wordt ingelezen ... 147627 bestanden en mappen momenteel geïnstalleerd.)
      Uitpakken van .../rpi-connect_1.1.0_arm64.deb wordt voorbereid...
      Bezig met uitpakken van rpi-connect (1.1.0) ...
      Instellen van rpi-connect (1.1.0) ...
      Created symlink /etc/systemd/user/default.target.wants/rpi-connect-wayvnc.service → /usr/lib/systemd/user/rpi-connect-wayvnc.service.
      Created symlink /etc/systemd/user/default.target.wants/rpi-connect.service → /usr/lib/systemd/user/rpi-connect.service.
    3. Herstart de Raspberry pi met de volgende opdracht:
      pi@raspberrypi:~ $ sudo reboot
      
      Broadcast message from root@raspberrypi on pts/1 (Tue 2024-05-28 15:16:27 CEST):
      
      The system will reboot now!
    4. Om Raspberry Pi Connect te gebruiken, heb je een Raspberry Pi ID nodig, dat je hier online kunt aanmaken.
    5. Daarna moeten we de Raspberry Pi koppelen aan het Raspberry Pi ID:
      1. Klik op de Raspberry Pi in het systeemvak bovenaan rechts op de knop Raspberry Pi Connect, dit is een lichtgrijze knop met een cirkel pictogram met twee bollen.
      2. Klik op de opdracht Sign in.
      3. Na een tijdje start de browser om in te loggen met jouw Raspberry Pi ID. Klik op de knop .
      4. Vul jouw Raspberry Pi ID gegevens in en klik op de knop .
      5. Geef jouw Raspberry Pi een naam en klik op de knop .
      6. Na een tijdje wordt de knop in het systeemvak actief (krijgt kleur). Sluit de browser.
    6. Om de Raspberry Pi via het internet te bedienen, surf je op om het even welk apparaat, om het even waar naar https://connect.raspberrypi.com/.
      1. Log in (Sign in) met jouw Raspberry Pi ID gegevens.
      2. Je komt automatisch terecht op de pagina met verbonden apparaten. Klik bij de apparaatnaam van de Raspberry Pi op de knop .
      3. Na een tijdje verschijnt het beeld van jouw Raspberry Pi in de browser.
        Raspberry Pi Connect
    7. Meer en recentere informatie kan je op de documentatie webpagina van Raspberry Pi Connect vinden.

Openbare reacties op deze pagina (kunnen door alle bezoekers gelezen worden)

, vrijdag 2 juni 2023 19:28