Die einfache Lösung, mit der ich meinen Heimserver kostenlos ins offene Web gebracht habe
Homelabs sind wirklich wunderbar. Es gibt eine besondere Art von Befriedigung darin, seine eigene Version von Diensten zu betreiben, für die andere Leute zahlen müssen. Man zahlt nicht nur nichts dafür, sondern sie funktionieren auch besser als die großen Anbieter - schließlich sind sie ja „eigene“ Dienste.
Ich nutze Tailscale, um von überall auf meinen Computer zuzugreifen. Viele Leute tun das. Ich wollte dafür eine eigene Domain einrichten - doch das war schwierig, da mein Netzwerk kompliziert ist und ich keine statische IP-Adresse habe. Vor Kurzem habe ich jedoch herausgefunden, dass mein Heim-Computer hinter einer eigenen Domain erreichbar ist; diese Domain nutzt echtes HTTPS, sodass jeder auf der Welt darauf zugreifen kann - selbst wenn ich keine statische IP-Adresse habe, selbst wenn mein ISP mich hinter CGNAT versteckt hat, selbst wenn meine Internetverbindung aus einer Mischung aus Satelliten-, DSL- und LTE-Technologien besteht.
Es kostet nichts und dauert etwa fünf Minuten. Bis vor Kurzem hatte ich keine Ahnung, dass das möglich ist. Monatelang nahm ich an, dass die Einrichtung einer echten Domain in meinem Heimlabor die Anmietung eines Servers erfordert - deswegen gab ich auf und akzeptierte die Situation. Ich lag falsch. Das ist das Tool, das ich mir gewünscht hätte, dass mir jemand schon vor langer Zeit gegeben hätte.
Warum es so schwierig war, eine Domain anzubinden
Mein Bericht über meine Misserfolge
Um zu zeigen, wie nützlich dieses Tool ist, muss ich am Anfang beginnen. Eine Domain ist ein lesbarer Name, den das DNS in eine IP-Adresse umwandelt. Das gesamte System geht davon aus, dass diese Nummer stabil und erreichbar ist.
Normalerweise sind die IP-Adressen in Heimnetzwerken nicht statisch. Sie ändern sich ständig - jedes Mal, wenn man den Router neu startet oder sich erneut verbindet und der ISP eine neue IP-Adresse zuweist. Es sei denn, man zahlt dem ISP eine Gebühr für eine statische IP-Adresse - doch dann landen wir wieder am selben Punkt: Wir müssen für einen Service zahlen.
Dynamic DNS wurde entwickelt, um dieses Problem zu lösen. Ein kleiner Client läuft im Hintergrund, erkennt Änderungen der IP-Adresse und gibt die neue Adresse weiter. Das bedeutet jedoch erneut, einen DNS-Server selbst zu betreiben. Das ist etwas aufwendig und anfällig für Fehler. Zudem hat man, wenn man hinter CG-NAT ist - beispielsweise beim LTE-Internetzugang - gar keine IP-Adresse, die man weitergeben könnte. Man teilt sich eine IP-Adresse mit Dutzenden von Fremden.
Selbst wenn dieses Hindernis überwunden ist, bleibt das Problem mit HTTPS. HTTPS ist mittlerweile keine Option mehr - es ist Pflicht. Viele Programme weigern sich schlichtweg, mit Ihnen zu kommunizieren, wenn Sie kein TLS-Zertifikat haben. Zwar ist das heute weniger ein Problem, da effiziente Tools wie certbot und ähnliche diese Aufgabe für Sie übernehmen.
Aber nochmals: Nichts davon spielt eine Rolle, wenn man etwas wie Tailscale eingerichtet hat. In diesem Fall unterscheidet sich die Situation kaum davon, direkt neben dem eigenen Rechner über eine LAN-Verbindung zu arbeiten. Doch - und das ist das Bild, das ich vermitteln möchte - das gilt nur für Sie. Angenommen, Sie möchten, dass Google Sheets bestimmte Daten aus einer Datenbank abruft, die in Ihrem Homelab gehostet wird. Wie bringen Sie Google Sheets in Ihr Tailnet? Das geht nicht - Sie brauchen eine Domain.
Ich muss mir keine Szenarien ausdenken - meine Entdeckung war das Ergebnis eigener Versuche. Ich hatte einen lokalen MCP-Server eingerichtet; dieser stand vor einer Qdrant-Datenbank, in die ich mithilfe eines lokalen Embedding-Modells Daten eingefügt hatte. Alle Voraussetzungen waren also gegeben - nun brauchte ich nur noch ein großes Modell wie Claude Opus 4.8, um den Server nutzen zu können. Claude erlaubt es zwar, eigene MCP-Server hinzuzufügen - doch es akzeptierte den von mir im Netzwerk festgelegten Namen „.local“ nicht (verständlicherweise). Zudem verlangte das Programm eine HTTPS-Verbindung. Egal, wie geschickt ich im lokalen Netzwerk vorging - es gelang mir nicht, die Software zufriedenzustellen, die schließlich eine echte, öffentliche und verschlüsselte Adresse verlangte. Ich benötigte also eine echte Domain, die auf meinen MCP-Server verweist.
Meine einzige Wahl war es, einen VPS zu mieten und eine Domain daran zu binden. Doch ein VPS mit Hardware und Leistung, die mit meinem Heimlaborequipment vergleichbar wäre, würde mich Hunderte von Dollar pro Monat kosten. Genau das hatte ich vor Jahren in Betracht gezogen - doch dann abgetan, nachdem ich mich davon überzeugt hatte, dass ich mit Tailscale zurechtkam.
Endlich die Lösung
Cloudflare Tunnels sind zu gut - aber wahr.
Cloudflare Tunnel war die Lösung. Glauben Sie mir: Schon seit sehr langer Zeit war mir keine so unglaublich nützliche Software mehr begegnet - und das völlig kostenlos. Sie ist wirklich großartig - und was sie noch unglaublicher macht, ist die Tatsache, dass sie vom weltweit führenden DNS-Anbieter stammt.
Ein kleines, kostenloses Programm namens cloudflared läuft auf Ihrem Heimserver, stellt eine Verbindung zu Cloudflare her und hält diese Verbindung von innen heraus aufrecht. Cloudflare wird somit die öffentliche Schnittstelle Ihres Dienstes - Ihr Server sorgt lediglich dafür, dass der Tunnel weiterhin besteht.
Da Ihr Server derjenige ist, der die Verbindung herstellt, gelten keine der alten Probleme mehr. Sie benötigen keine statische IP-Adresse - außerdem müssen Sie keinen einzigen Port umleiten. CGNAT spielt keine Rolle mehr, weil nichts versucht, eine Verbindung zu Ihrem Heimnetzwerk herzustellen. Auch eine dynamische IP-Adresse ist irrelevant, da Ihre Domain nicht mehr auf Ihr Zuhause verweist, sondern auf Cloudflare - welches bereits weiß, wie es Ihren Tunnel findet. Die komplizierte Realität Ihres Heimnetzwerks wird damit völlig unwichtig. Es funktioniert so gut, dass ich mich fast kindisch fühle, weil ich so begeistert von dieser Software bin.
Ich scherze nicht, wenn ich sage, dass die Einrichtung weniger als eine Minute gedauert hat. Alles, was Sie brauchen, ist eine Domain, die bei Cloudflare registriert ist. Falls Sie bereits eine Domain haben, die aber noch nicht bei Cloudflare ist, können Sie sie jetzt kostenlos dorthin übertragen und höchstens eine halbe Stunde warten, bis die DNS-Einstellungen überall übernommen wurden.
Für mich war das die Lösung - es hat alles behoben. Auch das Hinzufügen neuer Dienste auf neuen Subdomains ist ganz einfach: Man bearbeitet die Datei config.yml, neustartet den Dienst - und schon funktioniert alles. Die Subdomains werden automatisch erstellt, ebenso ihre CNAME-Einträge; außerdem werden sie mit dem Tunnel verknüpft.
Habe ich schon erwähnt, dass Sie dieses Programm unter Linux, Windows und macOS ausführen können? Überall.
Ihr Server ist jetzt für das gesamte Web zugänglich.
Allerdings steht nicht alles darauf.
|
Ich habe einen Beszel-Monitor in meinem Heimlabor eingerichtet und ihn über einen Cloudflare-Tunnel zugänglich gemacht. So kann ich mir schnell einen Überblick über die Leistung meiner Server verschaffen - ohne SSH oder Tailscale nutzen zu müssen. Schließlich: Was wäre, wenn Tailscale nicht funktionieren würde? Auch dann würde mir dieser Monitor bei der Diagnose helfen. |
Cloudflare-Tunnel funktionieren nur für Web-Verkehr - also HTTP und HTTPS. Das bedeutet, dass Sie damit problemlos jeden gewünschten Web-Service hosten können; allerdings können Sie damit keinesfalls einen VPN-Server betreiben. Es ist außerdem nicht möglich, beliebigen TCP- oder UDP-Verkehr durch solche Tunnel zu leiten. Im Gegensatz dazu arbeiten WireGuard und Tailscale ausschließlich über UDP und durchbrechen dabei NAT, um eine Verbindung herzustellen.
Es handelt sich dabei um eine völlig andere Methode. Bei einem Cloudflare-Tunnel befinden Sie sich nicht im selben Netzwerk wie Ihr Webdienst - genauso wie Sie, wenn Sie Google in Ihrem Browser öffnen, nicht im selben LAN wie Googles Server sind. Wenn Sie also einen TURN-Server für Videoanrufe selbst hosten, wird dieser nicht durch einen Cloudflare-Tunnel gelangen. Das gilt ebenfalls für VPNs, Spielserver usw. Falls diese Dienste jedoch Webseiten haben - wie z. B. ein WG-Easy- oder 3X-UI-Panel - können Sie diese problemlos über Cloudflare-Tunnel bereitstellen.
Nehmt die Sicherheit jetzt ernst.
Bequemlichkeit ist der Feind der Sicherheit. Deswegen akzeptieren wir alle die Zwei-Faktor-Authentifizierung. Wenn wir es allen erschwert, sich in einen Dienst einzuloggen, erschweren wir es sowohl den legitimen Nutzern als auch den Missbrauchern. Das gilt auch hier. Wenn Sie Ihren Dienst mithilfe von Cloudflare-Tunneln für das Web öffnen, ist er weitaus bequemer zugänglich als je zuvor - sei es über ein VPN oder Tailscale.
Allerdings ist es für Missbraucher genauso praktisch. Falls Sie sich auf die Sicherheit Ihres Netzwerks verlassen und die Benutzernamen sowie Passwörter aller Ihrer Webdienste beim Standardwert „admin“ gelassen haben, ändern Sie diese bitte, bevor Sie die Dienste für das Internet freigeben. Es ist an der Zeit, Ihre Sicherheit ernst zu nehmen.
Lange Zeit kam es mir so vor, als wäre eine eigene Domain für mein Homelab ein Luxus, der nur Leuten vorbehalten sei, die eine statische IP haben und genug Geld, um sich einen VPS zu leisten. Deswegen redete ich mir ein, dass ich so etwas gar nicht brauchte. Ich lag falsch - die Lösung war die ganze Zeit über nur einen kostenlosen Download entfernt. Wenn Sie also eine Domain besitzen, die bisher ungenutzt blieb, und einen Server, den Sie nur über ein VPN erreichen können, dann ist die Verbindung zwischen beiden nun in nur fünf Minuten und ohne Kosten herstellbar.








