Terug naar het blog

Hoe u uw lokale WordPress- of Drupal-site deelt met Cloudflare Tunnel (Gratis)

2025-10-148 min read

Wanneer je lokaal ontwikkelt met DDEV, moet je je werk mogelijk delen met klanten, webhooks van externe services testen of samenwerken met externe teamleden. Cloudflare Tunnel biedt een veilige, eenvoudige manier om je lokale ontwikkelingssites bloot te stellen aan het internet zonder firewallpoorten te openen of complexe netwerkconfiguraties te hoeven beheren.

Wat is Cloudflare Tunnel?

Cloudflare Tunnel (voorheen Argo Tunnel) maakt deel uit van Cloudflare's Zero Trust-netwerkoplossing. Het creëert een veilige, uitsluitend uitgaande verbinding van je lokale machine naar het edge-netwerk van Cloudflare, dat vervolgens openbaar verkeer naar je lokale services leidt. Dit betekent:

  • Geen geopende inkomende poorten - Je firewall blijft veilig
  • Geen openbaar IP vereist - Werkt achter NAT en bedrijfsfirewalls
  • Gratis voor ontwikkelingsgebruik - De snelle tunnels van Cloudflare zijn gratis
  • HTTPS standaard - Automatische SSL/TLS-versleuteling
  • Eenvoudige installatie - Slechts één opdracht om te beginnen

Wat is DDEV?

DDEV is een Docker-gebaseerde lokale ontwikkelomgeving die het eenvoudig maakt om PHP-projecten (Drupal, WordPress, Laravel, enz.) op te zetten met minimale configuratie. Het biedt:

  • Vooraf geconfigureerde containers voor web, database en andere services
  • Ondersteuning voor meerdere PHP-versies
  • Ingebouwde SSL-certificaten voor lokale HTTPS
  • Opdrachtregeltools voor veelvoorkomende ontwikkelingstaken

Door DDEV met Cloudflare Tunnel te gebruiken, kun je je site lokaal draaien en deze openbaar delen wanneer nodig.

Vereisten

Voordat we beginnen, zorg ervoor dat je het volgende hebt:

  • Een Mac-, Linux- of Windows-machine met Docker geïnstalleerd
  • DDEV geïnstalleerd en geconfigureerd (officiële installatiegids of bekijk mijn gids voor het instellen van DDEV voor WordPress en Drupal)
  • Een werkend DDEV-project (we gebruiken voorbeeldwebsites zoals myproject.ddev.site en client-site.ddev.site)
  • Basiskennis van de opdrachtregel
  • Geen Cloudflare-account vereist voor snelle tunnels (de methode die in deze handleiding wordt behandeld)

Opmerking: Als je persistente URL's met aangepaste domeinen wilt (later behandeld), heb je een gratis Cloudflare-account nodig.

Stap 1: Cloudflared installeren

De cloudflared daemon is de client die de tunnelverbinding maakt. De installatie verschilt per platform:

macOS (Homebrew)

brew install cloudflared

Linux (Debian/Ubuntu)

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

Linux (RHEL/CentOS)

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
sudo rpm -i cloudflared-linux-x86_64.rpm

Windows

Download de installer van de downloadpagina van Cloudflare of gebruik Chocolatey:

choco install cloudflared

Controleer de installatie:

cloudflared --version

Stap 2: Je DDEV-site starten

Zorg ervoor dat je DDEV-project actief is. Navigeer naar je projectmap en start DDEV:

cd /pad/naar/jouw/project
ddev start

Je site is lokaal bereikbaar via iets als https://jouwproject.ddev.site. Controleer of het werkt door het in je browser te openen.

Stap 3: Een Cloudflare Tunnel maken naar je DDEV-site

Hier wordt het interessant. Voer één opdracht uit en cloudflared maakt een tunnel met automatisch een openbare URL. Geen accountinstelling, geen authenticatie, geen configuratie nodig. De basis-syntaxis is:

cloudflared tunnel --url <lokale-url> --http-host-header <hostnaam>

Voorbeeld 1: Mijn Project Site

cloudflared tunnel --url https://myproject.ddev.site/ --http-host-header myproject.ddev.site

Voorbeeld 2: Klant Site

cloudflared tunnel --url https://client-site.ddev.site/ --http-host-header client-site.ddev.site

Nadat je deze opdracht hebt uitgevoerd, zie je uitvoer zoals:

2025-10-14T10:30:15Z INF Bedankt voor het proberen van Cloudflare Tunnel. Dit te doen zonder een Cloudflare-account is een snelle manier om te experimenteren en het uit te proberen. Wees er echter van bewust dat deze tunnels zonder account geen uptimegarantie hebben. Als je van plan bent Tunnels in productie te gebruiken, moet je een vooraf gemaakte benoemde tunnel gebruiken door te volgen: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/
2025-10-14T10:30:15Z INF Nieuwe snelle Tunnel aanvragen op trycloudflare.com...
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+
2025-10-14T10:30:16Z INF | Je snelle Tunnel is aangemaakt! Bezoek deze op (het kan even duren voordat deze bereikbaar is): |
2025-10-14T10:30:16Z INF | https://randomly-generated-subdomain.trycloudflare.com |
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+

Kopieer de gegenereerde URL (bijv. https://randomly-generated-subdomain.trycloudflare.com) en deel deze met iedereen die toegang nodig heeft tot je lokale site!

De opdrachtparameters begrijpen

Laten we de betekenis van elke parameter bekijken:

  • --url: De lokale URL waarop je DDEV-site draait. Gebruik HTTPS als je DDEV-site SSL gebruikt (wat standaard het geval is).
  • --http-host-header: Dit is cruciaal voor DDEV. Het vertelt cloudflared om de juiste hostnaam door te sturen in de HTTP Host-header. DDEV leidt verzoeken op basis van deze header, dus zonder deze krijg je een "404 Not Found" of zie je de verkeerde site.

Waarom is --http-host-header noodzakelijk?

De router van DDEV gebruikt virtueel hosten, wat betekent dat meerdere sites op hetzelfde IP-adres en dezelfde poort kunnen draaien. De router bepaalt welke site moet worden geserveerd op basis van de Host-header in het HTTP-verzoek.

Wanneer verkeer via Cloudflare Tunnel binnenkomt, zou de Host-header normaal gesproken het door Cloudflare gegenereerde domein zijn (zoals randomly-generated-subdomain.trycloudflare.com). Door --http-host-header myproject.ddev.site op te geven, overschrijven we dit en zorgen we ervoor dat DDEV de juiste hostnaam ziet.

Benoemde tunnels gebruiken voor persistente URL's

De bovenstaande methode voor snelle tunnels is perfect voor ad-hoc delen, maar de URL verandert elke keer dat je de opdracht uitvoert en er is geen uptimegarantie. Als je een persistente URL nodig hebt met je eigen aangepaste domein (zoals mijnproject.example.com), kun je een benoemde tunnel maken. Dit vereist een gratis Cloudflare-account.

1. Authenticeren bij Cloudflare

cloudflared tunnel login

Dit opent een browser om te authenticeren met je Cloudflare-account.

2. Een benoemde tunnel maken

cloudflared tunnel create mijn-ddev-tunnel

Dit genereert een tunnel-ID en een credentialsbestand.

3. Een configuratiebestand maken

Maak ~/.cloudflared/config.yml aan:

tunnel: <TUNNEL-ID>
credentials-file: /Users/jouwgebruikersnaam/.cloudflared/<TUNNEL-ID>.json

ingress:
- hostname: mijnsite.example.com
service: https://myproject.ddev.site
originRequest:
httpHostHeader: myproject.ddev.site
noTLSVerify: true
- service: http_status:404

Opmerking: noTLSVerify: true is nodig omdat DDEV zelfondertekende certificaten gebruikt.

4. Je domein routeren

cloudflared tunnel route dns mijn-ddev-tunnel mijnsite.example.com

5. De tunnel uitvoeren

cloudflared tunnel run mijn-ddev-tunnel

Je site is nu toegankelijk via https://mijnsite.example.com met een persistente URL!

Veelvoorkomende gebruiksscenario's

1. Klantdemo's

Deel werk-in-uitvoering sites met klanten zonder te implementeren op staging-servers:

cloudflared tunnel --url https://client-demo.ddev.site/ --http-host-header client-demo.ddev.site

Stuur de gegenereerde URL naar je klant voor onmiddellijke feedback.

2. Webhook testen

Test webhooks van services zoals Stripe, GitHub of Twilio die een openbare URL vereisen:

cloudflared tunnel --url https://webhooks.ddev.site/ --http-host-header webhooks.ddev.site

Configureer de webhook in de externe service om naar je Cloudflare-URL te wijzen.

3. Testen op mobiele apparaten

Test je responsieve ontwerpen op echte mobiele apparaten zonder op hetzelfde netwerk te zijn:

cloudflared tunnel --url https://mobile-test.ddev.site/ --http-host-header mobile-test.ddev.site

Open de Cloudflare-URL op je telefoon om op echte apparaten te testen.

4. Externe samenwerking

Deel je ontwikkelomgeving met externe teamgenoten:

cloudflared tunnel --url https://team-collab.ddev.site/ --http-host-header team-collab.ddev.site

Je team kan toegang krijgen tot de site alsof ze deze lokaal draaien.

Probleemoplossing

Een 404 of verkeerde site ontvangen

Zorg ervoor dat je de parameter --http-host-header gebruikt met de juiste DDEV-hostnaam:

cloudflared tunnel --url https://mysite.ddev.site/ --http-host-header mysite.ddev.site

SSL-certificaatfouten

Als je een benoemde tunnel gebruikt met een configuratiebestand, voeg dan noTLSVerify: true toe aan de sectie voor oorsprongsverzoeken, aangezien DDEV zelfondertekende certificaten gebruikt.

Tunnel start niet

Controleer of cloudflared al actief is:

ps aux | grep cloudflared

Beëindig bestaande processen indien nodig:

pkill cloudflared

DDEV-site lokaal niet bereikbaar

Controleer of je DDEV-site actief is:

ddev describe

Zorg ervoor dat de URL die je gebruikt overeenkomt met de uitvoer.

Beveiligingsoverwegingen

Hoewel Cloudflare Tunnel inherent veilig is, houd rekening met de volgende punten:

  • Stel productie-databases niet bloot - Tunnel alleen ontwikkelingssites met niet-gevoelige gegevens
  • Snelle tunnels zijn tijdelijk - URL's verlopen en moeten niet worden vertrouwd voor productie
  • Gebruik authenticatie - Voor gevoelige projecten voeg je Cloudflare Access-authenticatie toe aan je benoemde tunnels
  • Tunneltoegang monitoren - Controleer Cloudflare Analytics om te zien wie toegang heeft tot je tunnels
  • Tunnels afsluiten wanneer klaar - Gebruik Ctrl+C om de tunnel te stoppen wanneer je klaar bent

Alternatief: DDEV's ingebouwde deelopdracht

DDEV heeft ook een ingebouwde opdracht ddev share die gebruikmaakt van ngrok. Cloudflare Tunnel biedt echter verschillende voordelen:

  • Gratis zonder snelheidslimieten (ngrok gratis niveau heeft limieten)
  • Betere prestaties via het wereldwijde netwerk van Cloudflare
  • Integratie met Cloudflare Zero Trust voor geavanceerde functies
  • Persistente benoemde tunnels met aangepaste domeinen

Desalniettemin is ddev share nog eenvoudiger als je gewoon iets snels nodig hebt en geen extra tools wilt installeren.

Het proces vereenvoudigen met ddev-share-cf

Om dit proces nog eenvoudiger te maken, heb ik de ddev-share-cf DDEV-addon gemaakt. Deze addon integreert Cloudflare Tunnel rechtstreeks in DDEV, waardoor je je lokale sites kunt delen met een eenvoudige opdracht zonder handmatig cloudflared of configuratiebestanden te beheren.

Installatie

Installeer de addon met één opdracht:

ddev get davo20019/ddev-share-cf

Gebruik

Eenmaal geïnstalleerd, voer je eenvoudig uit:

ddev share-cf

De addon beheert alle tunnelconfiguratie automatisch, waardoor het net zo eenvoudig wordt als de ingebouwde deelopdracht van DDEV, maar met alle voordelen van Cloudflare Tunnel.

Aanvullende bronnen

Blijf op de hoogte

Ontvang de nieuwste berichten en inzichten in je inbox.

Unsubscribe anytime. No spam, ever.