Gids voor Veilige Expositie van Lokale Diensten met Cloudflare Tunnel in ServBay
Cloudflare Tunnel (voorheen Argo Tunnel) is een zero trust-netwerkdienst van Cloudflare. Hiermee kunt u uw lokaal draaiende webdiensten, SSH of andere applicaties veilig openstellen op het internet, zonder publieke poorten te openen of ingewikkelde firewallregels in te stellen. In deze gids leggen we stap voor stap uit hoe u in de krachtige lokale webontwikkelomgeving ServBay, een veilige tunnel opzet met het cloudflared
-hulpprogramma, zodat uw lokale ServBay-diensten vanaf het internet toegankelijk worden.
Belangrijkste voordelen:
- Verbeterde veiligheid: Profiteer van Cloudflare's wereldwijde netwerkbeveiliging, inclusief DDoS-bescherming, WAF (Web Application Firewall) en meer.
- Eenvoudige netwerkconfiguratie: Geen gedoe met port forwarding, NAT of firewallregels.
- Zero trust-model: Verkeer start vanuit uw eigen netwerk, wat het aanvalsoppervlak aanzienlijk verkleint.
- Cloudflare-integratie: Gebruik Cloudflare’s caching, optimalisatie, analyse en andere diensten.
Overzicht
ServBay biedt ontwikkelaars een geïntegreerde, eenvoudig te beheren lokale ontwikkelomgeving, met ondersteuning voor diverse programmeertalen (PHP, Node.js, Python, Go, Java, Ruby, Rust etc.), databases (MySQL, PostgreSQL, MongoDB, Redis enzovoort), en webservers (Caddy, Nginx, Apache). Standaard zijn in ServBay ontwikkelde sites of applicaties alleen lokaal toegankelijk. Door Cloudflare Tunnel te combineren met ServBay, deelt u eenvoudig uw voortgang met teamgenoten of maakt u tijdelijke of permanente publieke toegang mogelijk — met de beveiliging en prestatievoordelen van Cloudflare.
Technisch werkingsprincipe
De kern van Cloudflare Tunnel is het draaien van de cloudflared
-client op uw lokale netwerk (de machine waarop ServBay draait). Deze client maakt één of meerdere versleutelde QUIC-verbindingen met het dichtstbijzijnde Cloudflare-edgeknooppunt. Omdat deze verbindingen uitgaand zijn, zijn geen inkomende regels op uw router of firewall nodig. Wanneer een gebruiker uw dienst via het aan de tunnel gekoppelde domein benadert, wordt het verkeer eerst naar Cloudflare geleid, daarna veilig doorgegeven door de tunnel naar de lokale cloudflared
-client, die het vervolgens doorstuurt naar uw lokale ServBay-dienst (bijvoorbeeld een website op https://servbay.local
of http://localhost:8000
). Antwoorden volgen dezelfde weg terug.
Voorbereiding
Controleer voor u begint dat aan de volgende voorwaarden is voldaan:
- ServBay is geïnstalleerd en operationeel: Uw ServBay-omgeving werkt en de website/dienst die u wilt blootstellen draait lokaal (bijvoorbeeld de standaard domeinnaam
servbay.local
is bereikbaar). - Cloudflare-account: U beschikt over een Cloudflare-account.
- Domein beheerd door Cloudflare: U heeft een domein toegevoegd aan uw Cloudflare-account en de DNS van dit domein wordt door Cloudflare beheerd.
cloudflared
-client geïnstalleerd: U hebt hetcloudflared
-hulpprogramma op uw macOS-machine waar ServBay draait geïnstalleerd.
1. cloudflared
installeren
Voor macOS raden we installatie via Homebrew aan. Heeft u Homebrew nog niet, volg dan de installatie-instructies op de officiële Homebrew-site.
Installatie met Homebrew (aanbevolen):
bash
brew update
brew install cloudflared
1
2
2
Handmatige download & installatie (voor macOS ARM-architectuur):
bash
# Download de cloudflared-binary voor macOS ARM (Apple Silicon)
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-arm64.tgz | tar xz
# Verplaats het bestand naar een directory in uw systeem-PATH
sudo mv cloudflared /usr/local/bin/
1
2
3
4
2
3
4
Installatie verifiëren: Na installatie controleert u met onderstaand commando of cloudflared
werkt en krijgt u de versie te zien:
bash
cloudflared --version
# Voorbeeldoutput: cloudflared version 2024.5.0 (built 2024-05-01)
1
2
2
De weergegeven versie kan anders zijn. Zolang u de versie te zien krijgt is de installatie geslaagd.
2. Inloggen bij Cloudflare
Voer in de terminal het volgende commando uit om cloudflared
te autoriseren:
bash
cloudflared tunnel login
1
Na uitvoeren hiervan opent uw browser automatisch de Cloudflare login voor autorisatie. Selecteer uw Cloudflare-account (dat is gekoppeld aan uw domein) en autoriseer toegang voor cloudflared
. Na succesvolle authorisatie toont uw browser een bevestiging en genereert de terminal een cert.pem
bestand in de standaardconfiguratiemap (gewoonlijk ~/.cloudflared/
).
Tunnelconfiguratie in de praktijk
We maken nu een nieuwe tunnel en leiden het verkeer naar een lokale ServBay-dienst.
Stappenplan basisconfiguratie
Tunnel aanmaken
Maak een nieuwe tunnel aan in de terminal en kies een duidelijke naam, bijv.
servbay-demo-tunnel
.bashcloudflared tunnel create servbay-demo-tunnel
1Na het uitvoeren krijgt u het tunnel-ID (UUID) en het pad naar een
credentials-file
te zien. Noteer bijvoorbeeld het tunnel-IDa7b8c9d0-e1f2-3a4b-5c6d-7e8f9a0b1c2d
. In de map~/.cloudflared/
wordt een JSON-bestand aangemaakt (bijv.a7b8c9d0-e1f2-3a4b-5c6d-7e8f9a0b1c2d.json
) met de authenticatiegegevens. Bewaar dit bestand veilig.DNS-record instellen
Om Cloudflare te laten weten dat het verkeer voor een bepaald domein naar uw tunnel moet, voegt u een CNAME toe via het volgende commando:
bashcloudflared tunnel route dns servbay-demo-tunnel servbay-demo.uwdomein.nl
1Vervang
servbay-demo-tunnel
door de naam van uw tunnel enservbay-demo.uwdomein.nl
door het subdomein waarmee u de lokale dienst publiekelijk wilt benaderen (zorg datuwdomein.nl
beheerd wordt door Cloudflare).Dit commando creëert een CNAME-record in Cloudflare DNS voor
servbay-demo.uwdomein.nl
dat verwijst naar<tunnel-ID>.cfargotunnel.com
.Configuratiebestand aanmaken
cloudflared
gebruikt een YAML-configuratiebestand (standaard:~/.cloudflared/config.yml
) om te bepalen welke lokale diensten via welke domeinen bereikbaar zijn. Bestaat dit bestand nog niet, maak het dan aan.Voorbeeld van
~/.cloudflared/config.yml
:yaml# tunnel: Vervang door de werkelijke UUID van uw tunnel tunnel: a7b8c9d0-e1f2-3a4b-5c6d-7e8f9a0b1c2d # credentials-file: Pad naar het authenticatiebestand, doorgaans in ~/.cloudflared/ credentials-file: /Users/uwgebruikersnaam/.cloudflared/a7b8c9d0-e1f2-3a4b-5c6d-7e8f9a0b1c2d.json # pas gebruikersnaam en pad aan ingress: # Inkomend verzoeken worden zo gematcht en doorgestuurd - hostname: servbay-demo.uwdomein.nl # Extern domein dat u ingesteld heeft service: https://servbay.local # Het lokale ServBay-adres (ServBay voorziet standaard in HTTPS voor servbay.local) originRequest: # noTLSVerify: true # Zet deze optie aan als u een zelfondertekend certificaat gebruikt (bv. ServBay User CA) # Gebruikt u een geldig certificaat (zoals Let's Encrypt via ServBay ACME), is dit niet nodig. # Voor lokale development is het gebruikelijk 'noTLSVerify: true' aan te zetten. - service: http_status:404 # Fallback voor niet-matchende hostnames
1
2
3
4
5
6
7
8
9
10
11
12
13
14Let op:
- Vervang de waarden van
tunnel
encredentials-file
door de werkelijke gegevens. - Pas
hostname
aan aan het in stap 2 ingestelde subdomein. service: https://servbay.local
wijst naar de standaard ServBay-site; draait uw dienst elders (bv. een Node.js-app ophttp://localhost:3000
), pas dit dan aan.originRequest.noTLSVerify: true
is noodzakelijk indien u een zelfondertekend SSL-certificaat gebruikt voor uw lokale dienst, anders kancloudflared
geen verbinding maken. Bij gebruik van een geldig, systeemvertrouwd certificaat is deze optie niet nodig.
- Vervang de waarden van
Tunnel starten
Met het configuratiebestand klaar, start u de tunnel in de terminal:
bash
cloudflared tunnel run servbay-demo-tunnel
1
Vervang servbay-demo-tunnel
door uw eigen tunnelnaam.
cloudflared
maakt nu verbinding met Cloudflare en start de tunnel. De terminal toont de verbindingsstatus en logberichten. Zolang dit commando draait, blijft de tunnel actief. Wilt u dat de tunnel altijd op de achtergrond draait, overweeg dan integratie als systeemservice (bijvoorbeeld via launchctl
op macOS — deze handleiding behandelt dat niet verder).
Service verifiëren
Is de tunnel actief, dan kunt u vanuit elk netwerk uw lokale ServBay-dienst benaderen via het ingestelde domein.
Bezoek het ingestelde domein:
Gebruik een browser en ga naar het domein uit stap 2, bijv.https://servbay-demo.uwdomein.nl
.Verificatiepunten:
- De site zou nu vanaf het internet zichtbaar zijn en identiek aan de versie die lokaal bereikbaar is via
https://servbay.local
. - In de adresbalk ziet u een geldig SSL-certificaat — dit certificaat is uitgegeven door Cloudflare aan uw domein (niet uw lokale ServBay-certificaat).
- Met de ontwikkelaarstools controleert u de HTTP-response headers; u zou headers als
CF-RAY
moeten zien, wat aantoont dat het verkeer via het Cloudflare-netwerk loopt.
- De site zou nu vanaf het internet zichtbaar zijn en identiek aan de versie die lokaal bereikbaar is via
Geavanceerde Tips
Routing naar Meerdere Diensten
Definieer in de ingress
-sectie van config.yml
meerdere regels om verkeer voor verschillende hostnamen naar verschillende lokale ServBay-diensten te sturen (zoals verschillende sites of API's):
yaml
ingress:
- hostname: api.uwdomein.nl
service: http://localhost:8080 # Stel dat uw API op poort 8080 draait
- hostname: app.uwdomein.nl
service: https://servbay.local # Uw hoofdsite
- service: http_status:404
1
2
3
4
5
6
2
3
4
5
6
Verkeer monitoren en loggen
cloudflared
bevat hulpmiddelen voor monitoring en debugging:
- Live-statistieken bekijken:bash
cloudflared tunnel info servbay-demo-tunnel
1 - Uitgebreide logs:
cloudflared tunnel run
toont live logs in de terminal. U kunt het logniveau instellen of de logbestemmingslocatie aanpassen.
Integratie met Cloudflare Access
Voor extra beveiliging kunt u Cloudflare Access activeren op uw tunnel. Dit voegt identity & access management toe aan uw publieke diensten. Cloudflare Access hoort bij het Cloudflare Zero Trust-abonnement; instellen gebeurt via het Cloudflare-dashboard.
Probleemoplossing
Ervaart u problemen bij instellen of gebruik, raadpleeg dan onderstaande checklist:
Probleem | Oplossing |
---|---|
502 Bad Gateway bij toegang | Controleer of uw lokale ServBay-dienst draait (probeer via de browser: https://servbay.local of een ander lokaal adres).Check of het service -adres en poort in config.yml correct zijn ingesteld.Gebruikt u HTTPS én staat noTLSVerify uit, controleer het lokale certificaat of activeer noTLSVerify . |
DNS-resolutie werkt niet | Verifieer dat het juiste CNAME-record aanwezig is in Cloudflare DNS en verwijst naar <tunnel-ID>.cfargotunnel.com . Test via dig of nslookup . |
Certificaatfout in browser | Gaat het om een Cloudflare-certificaat, controleer of de hostname in config.yml overeenkomt met het bezochte domein.Krijgt u TLS-fouten tussen cloudflared en uw lokale dienst, controleer dan het adres en activeer indien nodig originRequest.noTLSVerify: true . |
Foutmelding bij cloudflared tunnel run | Controleer aanwezigheid en correcte YAML-opmaak van het bestand ~/.cloudflared/config.yml .Controleer of waarden voor tunnel en credentials-file juist zijn (UUID en pad).Controleer toegangsrechten tot het authenticatie- en config-bestand voor cloudflared. |
Trage of instabiele verbinding | Controleer of uw lokale netwerk stabiel is. Cloudflare Tunnel gebruikt QUIC, controleer netwerkondersteuning. Bekijk Cloudflare-regio's of neem contact op met Cloudflare-support. |
Samenvatting van de voordelen
Dankzij de integratie van Cloudflare Tunnel met ServBay kunnen ontwikkelaars:
- Veilig lokale projecten delen: Toon uw sites en apps snel aan klanten of teamleden.
- Webhooks of externe callbacks testen: Test scenario’s waarin externe toegang vereist is.
- Beschermd door enterprise-beveiliging: Maximale bescherming tegen aanvallen zoals DDoS met Cloudflare WAF.
- Geen netwerkconfiguratiestress: Ontwijk complexe port forwarding- en firewallinstellingen volledig.
- Wereldwijd bereik en performance: Profiteer van Cloudflare’s Anycast-netwerk voor optimale snelheid en beschikbaarheid.
ServBay’s robuuste lokale ontwikkeltools, gecombineerd met de veilige publicatiemogelijkheid van Cloudflare Tunnel, bieden een krachtige en veilige workflow voor ontwikkelaars.
Conclusie
In deze handleiding heeft u geleerd hoe u in ServBay cloudflared
installeert en configureert, tunnels aanmaakt en beheert, en zo uw lokale webdiensten veilig online zichtbaar maakt. Door het volgen van deze stappen benut u ten volle de voordelen van ServBay’s veelzijdige technologie-stack én de beveiligingsfuncties van Cloudflare Tunnel, sterk verbeterend uw ontwikkel- en samenwerkingservaringen. Onthoud: Cloudflare Tunnel is onderdeel van Cloudflare Zero Trust. Wilt u nóg meer controle en beveiliging, verdiep u dan in bijvoorbeeld Cloudflare Access.