Cloudflare Tunnel aanmaken op Raspberry Pi

Ga naar https://www.cloudflare.com en maak een gratis account aan. Voeg een domein toe en zorg dat de DNS servers via Cloudflare lopen, hoe dit in zijn werk gaat lees je in dit artikel.

Met een Cloudflare tunnel heb je een beveiligde tunnel tussen Cloudflare en een apparaat in jou thuisnetwerk. In het onderstaande voorbeeld gebruiken we een Raspberry Pi omdat daar nog geen goede instructie voor beschikbaar is bij Cloudflare. Maar de tunnel werkt ook op een PC of NAS enz.
Zorg ervoor dat er een recente ARM 64 Bits versie van Raspbian op de Raspberry Pi staat.

Meld aan op je aan op de Raspberry Pi en zorg dat deze bijgewerkt wordt door het onderstaande commando uit te voeren.
sudo apt-get update && sudo apt-get upgrade

We hebben een curl lsb-release pakket nodig, installeer deze.
sudo apt install curl lsb-release

Installeer nu de GPG Key voor Cloudflare.
curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-archive-keyring.gpg >/dev/null

Nu de GPG Key is opgeslagen kunnen we de Cloudflare Repository toevoegen.
echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list

Zorg er voor dat de Repository bijgewerkt wordt.
sudo apt update

Installeer nu het Cloudflare pakket.
sudo apt install cloudflared

We gaan nu aanmelden bij Cloudflare met, voer het onderstaande commando uit en kopieer de URL die je terug krijgt in de Browser.
cloudflared tunnel login
Als dit gelukt is krijg je het onderstaande bericht.
You have successfully logged in.
If you wish to copy your credentials to a server, they have been saved to: /home/pi/.cloudflared/cert.pem

Je kan nu een tunnel aanmaken, voer de naam van jou tunnel in, je krijgt een ID bewaar dit.
cloudflared tunnel create Hier_de_tunnelnaam

We gaan nu het CNAME record aanmaken zodat de server bereikbaar is op een hostnaam.
cloudflared tunnel route dns Hier_de_tunnelnaam Hier_de_domeinnaam
Bijvoorbeeld cloudflared tunnel route dns Demo demo.test.nl

Start nu de tunnel op.
cloudflared tunnel run --url localhost:80 Hier_de_tunnelnaam

Maak nu een configuratie file met jouw instellingen voor de tunnel.
sudo nano ~/.cloudflared/config.yml

tunnel: Hier_het_TunnelID
credentials-file: /home/pi/.cloudflared/TunnelID.json

ingress:
    - hostname: www.wpdemo.nl
      service: http://localhost:80
    - service: http_status:404

Installeer de services.
sudo cloudflared --config ~/.cloudflared/config.yml service install

Start Cloudflare
sudo systemctl enable cloudflared
sudo systemctl start cloudflared

In het Cloudflare Dashboard kan je nu bij Zero trust, Networks, Tunnels zien of jou tunnel op Healty staat.


Gerelateerd bericht