Dank aan SjslTech voor het documenteren en delen van deze praktijkopstelling. Zijn volledige videogids laat zien hoe ZimaBoard 2, Sunshine, Tailscale, Moonlight en een R36S-handheld samen kunnen werken als een draagbare pc-game-streamingoplossing. Dit artikel herschikt die opstelling tot een duidelijk systeemoverzicht en voegt netwerkcondities, details over headless-servers en beperkingen toe die het waard zijn om te begrijpen voordat je het reproduceert.
Samenwerkingsverklaring: Dit artikel is gemaakt in samenwerking met SjslTech en is gebaseerd op de setup en tests die in zijn video worden getoond. De videobeschrijving identificeert zijn ZimaBoard 2-link als een affiliatelink en bevat de kortingscode SjslTech. De streamingresultaten variëren afhankelijk van het spel, de hostconfiguratie, de firmware van de handheld en de netwerkroute.
Snel antwoord: de R36S draait het Windows-spel zelf niet. De host draait en rendert het spel, Sunshine codeert de video, Tailscale biedt een privé pad tussen netwerken, en Moonlight toont de stream op de handheld terwijl het controllerinvoer terugstuurt naar de host.
De opstelling in een oogopslag
Het nuttige idee achter de opstelling van SjslTech is het scheiden van taken. Een budget-handheld heeft mogelijk niet de hardware of het besturingssysteem om een pc-spel lokaal te draaien, maar kan nog steeds fungeren als streamingclient. Het zwaardere werk blijft bij de Windows-host, terwijl de R36S video-decoding, netwerken en invoer afhandelt.
In de video is de server geconfigureerd op Windows 11; SjslTech merkt op dat het proces ook toepasbaar is op Windows 10. De compacte host is een ZimaBoard 2 single-board server. Het volledige datapad ziet er als volgt uit:
Pc-spel op ZimaBoard 2 → Sunshine → Tailscale-netwerkpad → Moonlight op R36S → controllerinvoer terug naar de host
| Component | Rol in de opstelling | Wat het niet doet |
|---|---|---|
| ZimaBoard 2 / Windows-host | Draait het pc-spel, Sunshine en Tailscale. | Het kan een game niet soepel streamen als het die game niet soepel kan draaien en coderen. |
| Sunshine | Legt het hostscherm vast, codeert de sessie en levert deze aan een Moonlight-client. | Het biedt het privé pad tussen netwerken dat in deze opstelling wordt gebruikt niet. |
| Tailscale | Plaatst de host en handheld op hetzelfde privé tailnet, zelfs als ze zich op verschillende fysieke netwerken bevinden. | Het is niet de game-streaming- of video-encoderingslaag. |
| Moonlight op R36S | Ontdekt of maakt verbinding met de host, decodeert de stream, toont deze en stuurt controllerinvoer terug. | Het zorgt er niet voor dat het handheld-apparaat het Windows-spel lokaal draait. |
| R36S Tailscale Manager | Biedt een handheld-gerichte manier om Tailscale te installeren en beheren op een compatibele R36S software-setup. | Het garandeert geen compatibiliteit met elke kloon, beeldschermpaneel of aangepaste firmware-image. |

Waarom Tailscale toevoegen aan Moonlight Game Streaming?
Moonlight en Sunshine werken natuurlijk wanneer de host en client op hetzelfde lokale netwerk zitten. De uitdaging begint wanneer het handheld-apparaat het huis verlaat. De host zit nu achter één router, de R36S achter een andere, en het direct blootstellen van een streamingdienst aan het publieke internet brengt zowel configuratieproblemen als onnodige risico’s met zich mee.
Tailscale regelt de connectiviteitslaag. Beide apparaten maken verbinding met hetzelfde versleutelde privénetwerk en krijgen identiteiten die bruikbaar blijven, zelfs wanneer hun lokale IP-adressen veranderen. In deze workflow maakt Moonlight verbinding met de host via het Tailscale-adres of -naam in plaats van te vertrouwen op publieke poortdoorsturing.
Dat betekent niet dat elke externe sessie dezelfde latency zal hebben. Tailscale probeert een directe peer-to-peer verbinding tot stand te brengen. Wanneer een directe verbinding niet mogelijk is, kan het verkeer via een relay lopen, wat doorgaans latency toevoegt en de beschikbare doorvoersnelheid vermindert. De route, de uploadverbinding van de host en het huidige netwerk van het handheld-apparaat zijn allemaal van belang.
Wat je nodig hebt voordat je begint
- Een Windows 10- of Windows 11-host die het doelspel kan draaien en tegelijkertijd een stream kan coderen.
- Sunshine geïnstalleerd op de host en Moonlight beschikbaar op de R36S.
- Tailscale geïnstalleerd op beide eindpunten en ingelogd op hetzelfde tailnet.
- Een compatibele netwerkadapter voor het handheld-apparaat als de hardware geen ingebouwde Wi-Fi heeft.
- Een stabiele netwerkverbinding; Ethernet voor de host heeft sterke voorkeur.
- Lokale toegang tot de host voor initiële configuratie en herstel.
Bevestig voordat je externe toegang toevoegt dat het spel correct op de host start. SjslTech maakt een belangrijk punt in de server-notities sectie: als de host al moeite heeft om een spel te draaien, zal het toevoegen van realtime opname en codering die beperking niet oplossen.

Hoe SjslTech het streamingpad opbouwt
De video van 17 minuten volgt een logische afhankelijkheidsvolgorde. Sunshine wordt eerst geconfigureerd, daarna wordt Tailscale toegevoegd aan de server en het handheld-apparaat, en de Moonlight-koppeling vindt pas plaats nadat beide apparaten op het privénetwerk verschijnen.
- 2:35 — Stel de Sunshine-server in op Windows.
- 7:12 — Voeg Tailscale toe aan de host.
- 8:24 — Voeg Tailscale toe aan de R36S.
- 11:57 — Verifieer beide apparaten in het Tailscale-dashboard.
- 12:22 — Koppel de Moonlight-client met de server.
- 14:45 — Bereid de host voor om headless te draaien.
- 15:21 — Test gamestreaming op het handheld-apparaat.
1. Configureer Sunshine op de Windows-host
Installeer Sunshine vanaf de officiële projectsite, open vervolgens de webinterface en maak beheerdersreferenties aan. Voeg het bureaublad of de spellen toe die je met Moonlight wilt starten. Houd de applicatie, grafische driver en Windows-installatie up-to-date voordat je prestatieproblemen gaat oplossen.
Test Sunshine en Moonlight eerst op het lokale netwerk wanneer mogelijk. Een succesvolle lokale test scheidt streamingconfiguratie van configuratie voor het externe netwerk. Als de lokale sessie al een zwart scherm, controllerprobleem of ernstige hapering heeft, zal het toevoegen van Tailscale het onderliggende Sunshine- of hostprobleem niet oplossen.
2. Voeg Tailscale toe aan de host
Installeer Tailscale op Windows, meld je aan en bevestig dat de host online is in het beheerdersdashboard. Noteer de Tailscale-apparaatnaam en het privé-adres. Pas toegangscontroles toe zodat alleen de bedoelde apparaten of gebruikers de host kunnen bereiken; een privénetwerk is het meest nuttig als het lidmaatschap en de permissies beperkt blijven.
3. Voeg Tailscale toe aan de R36S
SjslTech gebruikt zijn open-source R36S Tailscale Manager om de clientzijde te beheren. Volg de huidige installatie- en compatibiliteitsnotities van de repository in plaats van aan te nemen dat elke R36S-kloon of aangepaste firmware-identiek werkt.
Controleer na authenticatie of zowel de R36S als de Windows-host online verschijnen in hetzelfde tailnet. Deze dashboardcontrole is meer dan administratief onderhoud: het bevestigt de verbindingslaag voordat de Moonlight-koppeling begint.
4. Koppel Moonlight met het Tailscale Host-adres
Voeg in Moonlight de host toe met het Tailscale-adres of de oplosbare tailnet-naam. Moonlight zou een koppelings-PIN moeten tonen; keur die PIN goed via Sunshine op de host. Zodra gekoppeld, selecteer je het bureaublad of een geconfigureerd spel en start je een sessie.
Als de host lokaal verschijnt maar niet op afstand, installeer dan niet meteen elk onderdeel opnieuw. Controleer eerst of beide apparaten online zijn in Tailscale, of toegangscontroles de verbinding toestaan, of Windows Firewall Sunshine toestaat en of de host wakker is.

De ZimaBoard 2-host headless laten draaien
Een compacte server is het meest nuttig als er voor elke sessie geen monitor, toetsenbord en muis aangesloten hoeven te zijn. SjslTech behandelt headless gebruik aan het einde van de gids, maar een betrouwbare headless setup vereist meer dan alleen het loskoppelen van het scherm.
- Stel Sunshine en Tailscale in om met Windows te starten.
- Voorkom dat de host in een slaapstand gaat die niet op afstand kan worden hersteld.
- Bevestig dat Sunshine een actief scherm kan vastleggen nadat de monitor is losgekoppeld.
- Als Windows de weergavecontext verwijdert, gebruik dan een geschikte dummy-displayadapter of een geteste virtuele displayoplossing.
- Plan een herstelpad, zoals lokale toegang of een apart beveiligde methode voor externe administratie.
- Vermijd het verzwakken van de Windows-aanmeldbeveiliging alleen om automatisch opstarten makkelijker te maken.
Test de volledige opstart-tot-stream-sequentie voordat je erop vertrouwt buiten huis: herstart de host, laat deze zonder monitor, bevestig dat hij terugkeert naar het tailnet en maak dan verbinding via Moonlight.
Wat de game-streamingtest eigenlijk laat zien
Om 15:21 schakelt SjslTech van configuratie naar een R36S gameplay-test. Het belangrijkste resultaat is functioneel: de handheld bereikt de host via het Tailscale-pad, Moonlight ontvangt de Sunshine-stream en controllerinvoer bereikt de externe Windows-sessie.
Dit is waardevol bewijs uit de praktijk, maar het mag niet worden gezien als een universele benchmark. De video stelt geen gegarandeerde latentie, bitrate, framerate of game-compatibiliteitsresultaat vast voor elk netwerk en elke hostbelasting.
| Gedemonstreerd in de build | Hangen nog steeds af van je omgeving |
|---|---|
| Sunshine kan een Windows-sessie aan Moonlight op de R36S leveren. | Of een specifiek spel soepel draait op je host. |
| Tailscale kan de host bereikbaar maken vanaf een ander netwerk. | Of de verbinding direct of via een relais verloopt, en de resulterende latentie. |
| De R36S kan fungeren als een interactieve streamingclient. | Kwaliteit van de Wi-Fi-adapter, firmware-ondersteuning, decoder-gedrag en controller-mapping. |
| Een compacte host kan worden voorbereid voor gebruik zonder scherm. | Gedrag van schermopname na herstart of het verwijderen van de monitor. |
Hoe je de stream afstelt zonder te gokken
Er is geen enkele “beste” Moonlight-voorinstelling voor elke R36S en elke externe verbinding. Stel één variabele tegelijk af, te beginnen met het pad dat waarschijnlijk de meeste vertraging veroorzaakt.
- Stabiliseer de hostverbinding. Gebruik indien mogelijk Ethernet en stop achtergronduploads die concurreren om uitgaande bandbreedte.
- Controleer de Tailscale-route. De documentatie over verbindingstypen legt directe en gerelayde paden uit. Een direct pad is over het algemeen te verkiezen voor interactieve streaming.
- Begin dicht bij de bruikbare schermresolutie van het handheld-apparaat. Het verzenden van aanzienlijk meer pixels dan de client kan weergeven verbruikt bandbreedte en encodeertijd zonder het zichtbare resultaat te verbeteren.
- Verlaag de bitrate voordat je alles anders aanpast. Als blokkerigheid, haperingen of grote latencypieken verdwijnen, was het netwerkpad waarschijnlijk overbelast.
- Test daarna framerate en resolutie apart. Door per test één instelling te wijzigen wordt de oorzaak van een verbetering zichtbaar.
| Symptoom | Controleer eerst |
|---|---|
| Host verschijnt niet in Moonlight | Beide apparaten zijn online in hetzelfde tailnet; het hostadres is correct; firewall- en toegangsregels staan de verbinding toe. |
| Video pauzeert of wordt blokkerig | Uploadbandbreedte van de host, signaalkwaliteit van de client, routetype en stream-bitrate. |
| Invoer voelt vertraagd aan | Netwerkvertraging, gebruik van relay, host-framerate, encoderbelasting en client-decodeerbelasting. |
| Zwart scherm na het verwijderen van de monitor | Beschikbaarheid van het Windows-scherm en het geselecteerde opnameapparaat van Sunshine. |
| Knoppen of sticks zijn verkeerd toegewezen | Moonlight, firmware, PortMaster en spel-specifieke controller mapping; dit staat los van de Tailscale-verbinding. |
Beveiligingsnotities voor remote game streaming
De aantrekkingskracht van dit ontwerp is dat Sunshine niet bewust als een publieke internetdienst hoeft te worden blootgesteld. Houd de Sunshine-interface beschermd met sterke inloggegevens, houd Windows en alle drie de netwerkapplicaties up-to-date, controleer het tailnet-lidmaatschap en beperk de toegang tot de apparaten die het nodig hebben. Deel geen authenticatielinks of herbruikbare sleutels in screenshots of openbare probleemoplossingsberichten.
Tailscale vermindert de noodzaak voor publieke poortdoorsturing in deze workflow, maar vervangt geen basisbeveiliging van eindpunten. Iedereen die toegang krijgt tot het Windows-account, Sunshine-gegevens of een geautoriseerd tailnet kan mogelijk meer bereiken dan alleen een spelbibliotheek.
Voor wie deze setup bedoeld is
Deze opstelling is logisch voor een knutselaar die al een R36S bezit, wil experimenteren met Windows game streaming en waarde hecht aan een compacte host die beschikbaar kan blijven zonder een bureau vol randapparatuur. Het is vooral interessant voor lichtere pc-spellen en voor gebruikers die begrijpen dat het handheld-apparaat een terminal is, geen vervangende GPU.
Het is minder geschikt wanneer het doelspel de host al tot het uiterste drijft, wanneer de externe verbinding inconsistente latentie heeft, of wanneer de gebruiker competitieve cloud-gamingreacties verwacht zonder afstemming. Als je primaire doel high-end AAA-streaming is, begin dan met het valideren van de lokale game- en encodeerprestaties van de host in plaats van aan te nemen dat de netwerkstack de bottleneck is.
Laatste conclusie
De build van SjslTech is overtuigend omdat elk hulpmiddel één duidelijke verantwoordelijkheid heeft. ZimaBoard 2 levert de Windows-host, Sunshine levert de stream, Tailscale zorgt voor privé-bereikbaarheid over netwerken, en Moonlight verandert de R36S in het externe scherm en de controller.
De beste manier om het te reproduceren is in lagen: maak het spel stabiel op de host, bewijs Sunshine lokaal, breng beide apparaten op hetzelfde tailnet, koppel Moonlight, en optimaliseer dan pas de prestaties op afstand en headless opstarten. Die volgorde verandert een schijnbaar ingewikkeld remote-gamingproject in een reeks testbare stappen.
Veelgestelde vragen
Draait de R36S het pc-spel lokaal?
Nee. De Windows-host draait en rendert het spel. De R36S ontvangt een gecomprimeerde videostream en stuurt controllerinvoer terug via Moonlight.
Heb ik Tailscale nodig als beide apparaten thuis zijn?
Niet per se. Sunshine en Moonlight kunnen op hetzelfde lokale netwerk werken zonder Tailscale. Tailscale wordt nuttig wanneer de host en handheld op verschillende netwerken zitten of wanneer je consistente privé-adressering wilt.
Garandeert Tailscale streaming met lage latentie?
Nee. Het kan een directe verbinding creëren, maar sommige netwerkcombinaties vereisen een relay. Fysieke afstand, routering, congestie, uploadbandbreedte van de host en connectiviteit van de client beïnvloeden nog steeds de reactietijd.
Kan ZimaBoard 2 een high-end gaming-pc vervangen?
Dat hangt af van de games en het prestatiedoel. Streaming verwijdert de rekeneisen van de host niet: de host moet het spel draaien en tegelijkertijd de video coderen. Beschouw deze build als een gedemonstreerde compacte streaminghost, niet als een algemene prestatiebelofte voor elke pc-titel.
Kan de host zonder monitor draaien?
Ja, nadat het headless gedrag is getest. Sunshine heeft nog steeds een bruikbare Windows-weergavecontext nodig, en de host moet wakker blijven, verbonden zijn met het netwerk en in staat zijn om de vereiste services na een herstart te starten.
Moet ik Sunshine-poorten op mijn router doorsturen?
Niet voor het privé Tailscale-pad dat hier wordt gedemonstreerd. Beide eindpunten verbinden via het tailnet, dus vermijd het direct blootstellen van Sunshine aan het openbare internet tenzij je een alternatief ontwerp volledig begrijpt en beveiligt.
Zima Campagnecentrum
Meer om te lezen

Wat is RAID en hoe werkt het?
Een beginnersvriendelijke RAID-gids die RAID 0, 1, 5, 6 en 10 behandelt, bruikbare capaciteit, herbouw, keuze van NAS-schijven en back-upbeperkingen.

Ik heb een Ikea Kallax omgebouwd tot een 10-inch rack homelab met de ZimaCube 2
Rack-gemonteerde homelabs klinken geweldig totdat je beseft dat je geen industriële straalmotor in je woonkamer wilt hebben. De 10-inch mini-rack beweging is het antwoord....

Hoe ik 14.000 foto’s zonder gegevensverlies naar de ZimaCube 2 heb gemigreerd — Een Immich-migratiehandleiding
Verplaats je Immich-bibliotheek en PostgreSQL-database moeiteloos. Ontdek de exacte 2,5GbE LAN-overdrachtsworkflow om te upgraden naar ZimaCube 2 zonder dataverlies.

