Praxisguide für localhost-Freigaben
Localhost freigeben mit Cloudflare und GhostlyShare
Wenn ein Kunde eine Vorschau braucht, ein Webhook-Anbieter eine Callback-URL erwartet oder du deinen Dev-Server auf dem Handy öffnen willst, brauchst du eine öffentliche URL für etwas, das weiterhin lokal läuft. Dieser Guide zeigt zuerst den Cloudflare-Weg im Terminal und danach den GhostlyShare-Workflow für wiederholtes Teilen.
Schnelle Entscheidung
Nutze das Tool, das zur Häufigkeit der Freigaben passt
Der Fehler ist, jede lokale Vorschau wie Hosting zu behandeln. Ein Tunnel ist ideal für temporären Zugriff. GhostlyShare ist ideal, wenn daraus ein regelmäßiger Workflow wird. Ein echtes Deployment ist richtig, sobald Nutzer von der URL abhängig sind.
cloudflared.exe nutzen
Cloudflares Tunnel-Client einmal installieren, einen Befehl ausführen, die temporäre URL kopieren und danach mit Strg+C stoppen.
GhostlyShare nutzen
Die Desktop-App erkennt lokale Dienste, startet die Freigabe, zeigt den Zustand, kopiert die URL und stoppt den Zugriff, ohne dass du im Terminal-Output suchen musst.
App deployen
Wenn die URL Uptime, Monitoring, Backups, stabile Releases oder klare Support-Verantwortung braucht, ist ein Laptop-Tunnel die falsche Verlässlichkeitsgrenze.
Methode 1
Cloudflare-EXE: der schnellste saubere Kommandozeilen-Flow
Cloudflares Tunnel-Client heißt cloudflared. Unter Windows kannst du ihn mit winget installieren oder die EXE manuell herunterladen. Für eine kurze Development-Vorschau gibt dir Quick Tunnel eine zufällige HTTPS-URL, ohne Router-Portweiterleitung, Cloudflare-DNS-Zone oder eigene Domain.
Lokale App starten
Öffne zuerst die lokale URL im Browser. Wenn die App lokal nicht funktioniert, kann ein öffentlicher Tunnel das nicht reparieren.
npm run dev
cloudflared unter Windows installieren
Use winget when it is available. If you download the EXE manually, place it in a folder such as C:\Cloudflared\bin and call it cloudflared.exe.
winget install --id Cloudflare.cloudflared
Öffentliche URL erzeugen
Use the exact local HTTP URL and port. In PowerShell from the EXE folder, use .\cloudflared.exe if the executable is not on PATH.
cloudflared.exe tunnel --url http://localhost:5173
Vor dem Teilen testen
Öffne die erzeugte trycloudflare.com-URL in einem privaten Fenster oder auf einem anderen Gerät. Prüfe Login, Assets, Redirects und API-Calls, bevor du sie weitergibst.
https://example-random-name.trycloudflare.com
Tunnel bewusst stoppen
Wenn Demo oder Webhook-Test vorbei sind, stoppe den Terminal-Prozess. Wenn dein Rechner schläft oder die Verbindung verliert, funktioniert der Quick Tunnel ohnehin nicht mehr.
Ctrl+C
Stabile Preview-Namen
Zufällige URL oder eigener Cloudflare-Hostname?
Zufällige URLs sind perfekt, wenn der Link nach dem Test wieder verschwinden darf. Custom Domains sind sinnvoll, wenn die Preview stabil aussehen soll, zum Beispiel demo.example.com, und du die Domain bereits in Cloudflare verwaltest.
| Bedarf | Verwenden | Warum es passt |
|---|---|---|
| Eine Fünf-Minuten-Demo oder ein Webhook-Callback | Zufällige URL | Kein Account- oder DNS-Aufwand nötig, und der Link lässt sich nach dem Test einfach verwerfen. |
| Ein Kundenreview, das gebrandet aussehen soll | Eigene Domain | Ein Hostname unter deiner Kontrolle ist leichter wiederzuerkennen, braucht aber deine Cloudflare-Zone, Token-Berechtigungen, DNS und Tunnel-Routing. |
| Eine Preview, die nicht beiläufig geöffnet werden soll | Passwortgeschützter Link | Füge vor dem Veröffentlichen ein Passwort hinzu und teile URL und Passwort getrennt mit der kleinen Gruppe, die Zugriff braucht. |
Andere Optionen
Andere Möglichkeiten, localhost freizugeben
Du brauchst nicht ein Tool für jede Situation. Die beste Wahl hängt davon ab, ob du einen Wegwerf-Link, einen Desktop-Workflow, eine gebrandete Preview, ein privates Netzwerktool oder ein bewusst gehärtetes Self-Hosting-Setup willst.
| Tool | Typischer Befehl oder Aktion | Gut für | Achte auf |
|---|---|---|---|
| Cloudflare Quick Tunnel | cloudflared tunnel --url http://localhost:5173
|
Schnelle öffentliche Wegwerf-HTTPS-URLs ohne Router-Änderungen. | Nur für Entwicklung und Tests; zufällige URL; Terminal-Lebenszyklus. |
| GhostlyShare | Go Public in der Desktop-App auswählen
|
Wiederholte lokale Previews, Webhook-Tests, passwortgeschützte Demos und optionale Cloudflare-Custom-Domains. | Trotzdem kein Production-Hosting; deine lokale App und dein Rechner müssen laufen, solange der Link funktionieren soll. |
| ngrok | ngrok http 5173
|
Teams, die ngrok bereits nutzen, reservierte Domains, Traffic Inspection und provider-spezifisches Routing brauchen. | Account- und Plan-Details zählen; mehr Provider-Setup als bei einem Wegwerf-Quick-Tunnel. |
| Tailscale Funnel | tailscale funnel 3000
|
Nutzer, die bereits Tailscale verwenden und einen öffentlichen HTTPS-Endpunkt für ein Tailnet-Gerät möchten. | Erfordert Tailscale-Setup und aktiviertes Funnel-Feature für das Tailnet. |
| localtunnel | npx localtunnel --port 3000
|
Schnelles Node-basiertes localhost-Sharing für einfache Tests. | Nützlich für einfache Previews; bei allem Sensiblen vorher genau abwägen. |
| Router-Portweiterleitung | Router, DNS, TLS und Reverse Proxy konfigurieren
|
Dauerhaftes Self-Hosting, wenn du die Infrastruktur bewusst betreibst. | Mehr Angriffsfläche; Patching, Firewall-Regeln, Logs und TLS werden deine Aufgabe. |
Webhook-Testing
Die Details, die bei Webhooks Zeit sparen
Webhook-Anbieter können http://localhost auf deinem Laptop nicht erreichen. Sie können aber die öffentliche Tunnel-URL aufrufen. Behandle diese URL wie eine echte externe Integration: Signaturen aktiv lassen, den exakten Callback-Pfad nutzen und Redirects sowie CORS prüfen.
Vollständigen Callback-Pfad nutzen
Wenn dein Receiver auf /api/webhooks/stripe lauscht, trage die öffentliche URL mit genau diesem Pfad ein, nicht nur die Domain.
Signaturprüfung aktiv lassen
Ein öffentlicher Tunnel macht echte Webhook-Signaturen leichter testbar. Er ist kein Grund, die Signaturprüfung abzuschalten.
Base-URLs und Forwarded Headers beachten
Wenn die öffentliche URL zurück auf localhost leitet, konfiguriere öffentliche Base-URLs, Forwarded Headers, Trusted Proxies oder Host-Einstellungen deines Frameworks.
Aus einer sauberen Browser-Session testen
Nutze ein privates Fenster oder ein zweites Gerät, damit gecachter localhost-Zustand keine Probleme mit Cookies, CORS, Redirects oder Mixed Content verdeckt.
Troubleshooting
Behebe zuerst die häufigen Tunnel-Probleme
Der Tunnel startet, aber die Seite bleibt leer
Öffne die lokale URL direkt und prüfe dann, ob Assets, API-URLs, WebSocket-URLs oder Umgebungsvariablen weiterhin auf localhost zeigen.
Die öffentliche URL leitet auf localhost um
Viele Frameworks bauen Redirects aus dem Request-Host. Korrigiere Forwarded Headers, Trusted Proxies, Public Origin oder erzwungene Development-Redirects.
Der Link erscheint, bevor er funktioniert
Cloudflare-Routing, DNS, GhostlyShares lokaler Proxy und die Origin-App brauchen manchmal kurz, bis alles zusammenpasst. Warte ein paar Sekunden, lade neu und teste erneut.
HTTPS-localhost-Zertifikate verursachen Fehler
Für kurze Previews tunnelst du möglichst den lokalen HTTP-Endpunkt. Für längere Setups konfigurierst du Origin-TLS bewusst statt zu raten.
Hot Reload oder WebSockets scheitern
Nutze ein Tool mit WebSocket-Unterstützung und stelle sicher, dass die App ws- oder wss-URLs aus dem öffentlichen Host baut, nicht aus einem hart codierten localhost-Wert.
Sicherheit
Bevor du die öffentliche URL verschickst
Eine öffentliche Preview-URL ist weiterhin öffentlicher Zugriff. Passwortschutz kann versehentlichen Zugriff reduzieren, macht einen riskanten lokalen Dienst aber nicht automatisch sicher. Teile die engste URL, nutze Testdaten und stoppe den Link nach Review oder Webhook-Test.
Testdaten nutzen
Teile keine echten Kundendaten, Datenbank-Admin-Oberflächen, internen Dashboards, Seed-Secrets oder privaten Unternehmensdaten.
App-Authentifizierung aktiv lassen
Wenn ein Feature normalerweise Login verlangt, sollte es auch während der öffentlichen Preview Login verlangen.
Passwortschutz für private Previews nutzen
Für kleine Review-Gruppen setzt du vor dem Veröffentlichen ein GhostlyShare-Passwort und teilst es getrennt vom Link.
Links stoppen und rotieren
Stoppe temporäre Links nach der Nutzung. Wenn eine URL oder ein Passwort in einem Ticket oder Chat landet, erstelle lieber eine frische Preview statt sie wiederzuverwenden.
FAQ
Häufig gestellte Fragen
Wie lautet der genaue Windows-Befehl?
Nach der Installation von cloudflared startest du cloudflared.exe tunnel --url http://localhost:PORT und ersetzt PORT durch den lokalen Port deiner App, zum Beispiel 5173, 3000, 5080 oder 8080.
Ist GhostlyShare nur ein Wrapper um cloudflared?
Nein. GhostlyShare nutzt Cloudflare-basierte Tunnel, ergänzt aber einen Desktop-Workflow rund um App-Erkennung, zufällige oder eigene öffentliche Links, Bereitschaftszustand, Stoppen des Zugriffs und optionalen Passwortschutz.
Kann GhostlyShare einen öffentlichen Link mit Passwort schützen?
Ja. Aktiviere den Passwortschutz, bevor du öffentlich gehst. Besucher müssen das Passwort eingeben, bevor GhostlyShare Traffic an die ausgewählte lokale App weiterleitet. Das ersetzt aber keine saubere App-Sicherheit.
Brauche ich Router-Portweiterleitung?
Nein für die Tunnel-Workflows in diesem Guide. cloudflared, GhostlyShare, ngrok, Tailscale Funnel und ähnliche Tools bauen ausgehende Verbindungen von deinem Rechner auf, daher brauchst du normalerweise keine eingehende Router-Weiterleitung.
Kann ich Webhooks über einen lokalen Tunnel testen?
Ja. Starte den lokalen Webhook-Receiver, gib ihn über den Tunnel frei, trage die öffentliche HTTPS-URL plus den richtigen Callback-Pfad beim Anbieter ein, sende ein Test-Event und prüfe den Request lokal.
Sollte ich Admin-Tools oder Datenbanken freigeben?
Meistens nein. Teile keine Datenbank-Konsolen, Admin-Dashboards, Infrastruktur-Panels, Debug-Endpunkte oder internen Dienste, außer sie sind bewusst gehärtet und sollen aus dem Internet erreichbar sein.
Sollte ich einen Laptop-Tunnel für Production-Traffic nutzen?
Nein. Nutze ein echtes Deployment oder einen verwalteten Tunnel auf Infrastruktur, die dauerhaft online bleibt, Updates bekommt, überwacht wird und sich nach Fehlern erholt.