Als u thuis een lokale server draait op een oude laptop of pc, zoals een Plex Media-server, een bestandsserver, een webserver of een andere server - u kunt deze aan het internet blootstellen door de port forwarding-optie in uw router. Het is echter niet veilig en ook niet aan te raden om op die manier toegang te krijgen tot een server in een productieomgeving.
We laten u zien hoe u uw lokale servers veilig kunt blootstellen met een HTTPS-verbinding met internet met behulp van de gratis Cloudflare Tunnel-service, zonder uw openbare IP vrij te geven.
Wat is Cloudflare-tunnel?
Cloudflare Tunnel, voorheen bekend als Argo Tunnel, helpt gebruikers om hun bronnen veilig bloot te leggen, zoals lokale servers, naar het internet zonder een publiek IP-adres of port forwarding in te schakelen in de router. Wanneer u een Cloudlfare-tunnel opzet in uw Windows-, macOS- of Linux-systeem, wordt een lichtgewicht tunneling daemon (cloudflared) is geïnstalleerd en bevindt zich tussen uw bron (lokale server) en de Cloudflare netwerk. Met Cloudflare Tunnel kunt u veilig alle lokale HTTP-webservers, externe desktops, SSH-servers of verschillende andere protocollen op internet plaatsen en verbinden.
Hieronder laten onze stapsgewijze instructies zien hoe u de cloudflared tunneling-daemon instelt op Windows, macOS, Linux en Raspberry Pi voor het blootstellen van lokale servers aan internet.
Voordat je begint
Om de cloudflared tunneling-daemon op uw systeem te installeren en in te stellen, moet u aan deze voorwaarden voldoen:
- Registreer een domeinnaam. U kunt er een kopen bij de serviceproviders, zoals GoDaddy, of u kunt een gratis domein krijgen van freenom. com.
- Nadat u de domeinnaam heeft geregistreerd, maakt u een Cloudflare-account aan en voegt u uw domein toe - zie Cloudflare-configuratie.
- Wijzig of update vervolgens de domeinnaamservers naar de Cloudflare-naamservers - zie de Cloudflare-documentatie. Deze instelling is beschikbaar op de portal waar u het domein hebt geregistreerd of gekocht.
Zodra aan deze vereisten is voldaan, kunt u de onderstaande stappen volgen om de Cloudflare Tunnel in te stellen op uw Windows-, macOS-, Linux- of Raspberry Pi-computer.
Installeer Cloudflare Tunnel op Windows
Het opzetten van Cloudflare Tunnel op een Windows-systeem vereist dat je een lichtgewicht server-side daemon installeert. Ga de cloudflared releases pagina en download de juiste versie voor uw versie van Windows:
- 32-bits Windows: cloudflared-windows-386.exe
- 64-bits Windows: cloudflared-windows-amd64.exe
Ga na het downloaden van de cloudflared daemon-setup naar de map waar de setup zich bevindt en hernoem het bestand naar cloudflared.exe. Open vervolgens de opdrachtprompt en navigeer naar de locatie waar de cloudflared-daemon zich bevindt met behulp van de CD commando. Bijvoorbeeld:
CD C:\Gebruikers\Ravi Singh\Downloads\Programma's
Voer vervolgens de volgende opdrachten uit om de versie te controleren en de nieuwste update te installeren.
wolkfladderend.exe--versie
wolkfladderend.exeupdate
Als u een uitvoer ziet zoals weergegeven in de onderstaande schermafbeelding, bent u klaar om te gaan.
U moet af en toe controleren op cloudflared-updates om de installatie up-to-date te houden en verbindingsproblemen te voorkomen.
Installeer Cloudflare Tunnel op macOS
Op macOS kun je de Terminal-app gebruiken om de cloudflared-daemon te downloaden en te installeren en vervolgens opdrachten gebruiken om een veilige tunnel te maken en lokale servers bloot te stellen aan internet.
Voer de volgende opdracht uit in de Terminal om cloudflared te downloaden:
brouwen installeren wolkenvlam/wolkenvlam/wolkenvlam
U kunt ook deze opdracht uitvoeren om cloudflared te downloaden:
brouwen installeren wolkfladderend
Installeer Cloudflare Tunnel op Linux
Op basis van het Linux-besturingssysteem dat u gebruikt, downloadt u het cloudflared pakket. Open vervolgens de Terminal-app, navigeer naar de locatie waar het pakket is gedownload en installeer het. Als alternatief kunt u, afhankelijk van uw Linux-distro, een van de volgende opdrachten gebruiken om cloudflared te downloaden en te installeren.
DEB installeren
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && dpkg -i cloudflared-linux-amd64.deb
RPM installeren
wget-q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
Boog Linux
Gebruik op Arch Linux de pacman-tool om cloudflared te installeren.
pacman -Syu wolkvlam
Installeer Cloudflared Tunnel op Raspberry Pi
Er is geen officiële cloudflared-build of repository voor Raspberry Pi Zero, 2, 3 of 4. U kunt echter de niet-officiële ARMv6-builds voor Raspberry Pi installeren en gebruiken om de cloudfared-tunnel in Raspberry Pi OS in te stellen. We hebben al een paar tutorials behandeld, zoals de zelfgehoste BitWarden-wachtwoordbeheerder op Raspberry Pi Zero, waar we de niet-officiële builds hebben gebruikt om onze lokale servers bloot te stellen aan internet met een HTTPS-verbinding via een Cloudflare-tunnel.
Om cloudflared op Raspberry Pi OS Bullseye (of een andere versie) te installeren, voer je de volgende opdracht uit in de Terminal.
sudo wget https://hobin.ca/cloudflared/releases/2022.8.2/cloudflared_2022.8.2_arm.tar.gz
sudoteer-xvzfwolkenvlam_2022.8.2_arm.teer.gz
sudo cp ./cloudflared /usr/lokaal/bin
sudo chmod +x /usr/lokaal/bin/cloudflared
wolkenvlam -v
Om te controleren op de nieuwste onofficiële versies voor Raspberry Pi, bekijk je de ARMv6 bouwt pagina.
Maak en stel een Cloudflare-tunnel in
Zodra de cloudflared-daemon is gedownload en geïnstalleerd op uw Windows, macOS, Linux of Raspberry Pi, je kunt een Cloudflare-tunnel maken door de volgende opdracht in de Terminal-app of opdrachtprompt te gebruiken:
cloudflared inloggen
Op Windows, macOS of Linux opent dit de Cloudflare-inlogpagina in uw standaardwebbrowser. Als het browservenster niet automatisch wordt geopend, kopieert u de URL die wordt weergegeven in de opdrachtuitvoer en plakt u deze in de webbrowser en logt u in op uw Cloudflare-account.
Nadat u bent ingelogd, selecteert u het domein dat u aan het Cloudlfare-account hebt toegevoegd en klikt u op Toestemming geven.
Eenmaal geautoriseerd, ziet u het bericht "U bent succesvol ingelogd...". Het zal ook een genereren cert.pem bestand en sla het op in de standaard cloudflared-maplocatie:
- Ramen: %USERPROFILE%\.cloudflared
- macOS: ~/.wolkenvlam
- Linux: /etc/cloudflared,
- Framboos Pi: /usr/local/etc/cloudflared
Vervolgens moeten we een tunnel maken met behulp van de volgende opdracht:
cloudflared tunnel creëren <UwTunnelnaam>
Je kunt je tunnel een naam geven die je maar wilt. Wij bijvoorbeeld hostte een WordPress-site op een oude laptop en gebruikte de sitenaam als de tunnelnaam; dit maakt het gemakkelijk te onthouden.
De opdracht maakt een tunnel en ook een JSON-bestand met een unieke alfanumerieke tunnel-UUID. Kopieer het JSON-bestandspad en tunnel UUID, plak het in een Kladblok of Notes-lijst en bewaar het veilig, want we hebben deze nodig om een configuratiebestand te maken.
Voer de volgende opdracht uit om het configuratiebestand in macOS, Linux of Raspberry Pi OS te maken,
sudo nano ~/.cloudflared/config.yml
Plak de volgende code in de editor.
tunnel: <TunnelUUID>
referentiebestand: /root/.cloudflared/<TuinnelUUID>.json
binnenkomen:
-hostnaam: mijn huis.smartgar.org
dienst: http://192.168.0.1
-dienst: http_status:404
Zorg ervoor dat u de TunnelUUID en het JSON-bestandspad vervangt in de inloggegevens-bestand code regel. druk op CTRL + X of Commando + X (macOS) en vervolgens de Y toets gevolgd door Binnenkomen om de wijzigingen in het bestand op te slaan config.yml bestand.
In Windows kunt u Verkenner gebruiken en naar de volgende locatie navigeren:
C:\Gebruikers\Je profielnaam\.wolkenflakkering
Klik vervolgens met de rechtermuisknop, selecteer Nieuw > Tekstdocument, en plak het bovengenoemde codeblok.
Klik Weergave in de Verkenner en schakel de Bestandsnaamextensies keuze.
Bewerk vervolgens het tekstdocument met de naam config.yml.
U kunt meerdere hostnamen en services toevoegen aan het configuratiebestand om ze via internet via een Cloudlfare Tunnel te benaderen. Kopieer gewoon de eerste twee regels onder de binnenkomen: coderegel en plak ze voor de -service: http_status: 404. Vervang de hostnaam en de lokale server-IP's om het verkeer van internet door te sturen naar de betreffende lokale server. Zie hieronder een voorbeeld.
Een voorbeeld voor meerdere hostnamen en services:
tunnel: <TunnelUUID>
referentiebestand: /root/.cloudflared/<TuinnelUUID>.json
binnenkomen:
-hostnaam: mijn huis.smartgar.org
dienst: http://192.168.0.1
-hostnaam: plex.smartgar.org
dienst: http://192.168.0.136
-dienst: http_status:404
Sla de wijzigingen op en maak vervolgens de CNAME-records in Cloudflare DNS met behulp van de volgende opdracht.
cloudflared tunnel route dns <Tunnelnaam><hostnaam>
Bijvoorbeeld:
wolkfladderendtunnelrouteDNSslimmermijn huis.smartgar.org
Zodra de CNAME is toegevoegd, kunt u de tunnel starten om via internet toegang te krijgen tot uw lokale server met de hostnaam die u hebt toegewezen.
tunnel rennen in de wolken <Tunnelnaam>
Als u een vergelijkbare uitvoer ziet als in de bovenstaande schermafbeelding, is de tunnel succesvol gestart. U kunt nu de webbrowser openen op elk apparaat dat met internet is verbonden en de hostnaam bezoeken. Voor dit geval is het mijnhuis.smartghar.org.
Omdat we willen dat de hostnaam onze routerconfiguratiepagina laadt, hebben we het IP toegevoegd 192.168.0.1, die anders alleen toegankelijk was via het lokale netwerk.
U moet de SSL/TLS-optie instellen op Flexibel of Volledig (afhankelijk van wat voor u werkt) om een veilige HTTPS-verbinding met uw lokale instantie mogelijk te maken.
Eindeloze mogelijkheden
Met Cloudlfare Tunnel heeft u via internet gratis toegang tot elke serverconfiguratie in uw huis. U kunt deze service gebruiken om een website op een lokaal systeem te hosten en deze te testen voordat u deze op een webserver implementeert of toegang verleent aan het publiek. U kunt het ook gebruiken om via internet veilig toegang te krijgen tot uw lokale slimme huis dat op Home Assistant of een andere server draait.
We hebben de Cloudflare Tunnel-service opgezet op een Raspberry Pi Zero W, die een kleinere heeft voetafdruk, verbruikt minder stroom en werkt prima, waardoor we toegang hebben tot al onze lokale servers van een afstand.