Praktisk guide för localhost-delning
Exponera localhost med Cloudflare och GhostlyShare
När en kund behöver en förhandsvisning, en webhook-leverantör behöver en callback-URL eller du vill öppna din utvecklingsserver på en telefon, behöver du en offentlig URL för något som fortfarande körs lokalt. Denna guide visar först Cloudflares terminalmetod och sedan GhostlyShares arbetsflöde för upprepad delning.
Snabbt beslut
Använd verktyget som passar mängden delning
Felet är att behandla varje lokal förhandsvisning som hosting. En tunnel är bäst för tillfällig åtkomst. GhostlyShare är bäst när detta blir ett regelbundet arbetsflöde. En riktig distribution är bäst när användare är beroende av URL:en.
Använd cloudflared.exe
Installera Cloudflares tunnelklient en gång, kör ett kommando, kopiera den tillfälliga URL:en och stoppa sedan med Ctrl+C.
Använd GhostlyShare
Låt skrivbordsappen upptäcka lokala tjänster, starta delning, visa beredskap, kopiera URL och stoppa åtkomst utan att leta i terminalutdata.
Distribuera appen
Om URL:en behöver drifttid, övervakning, säkerhetskopior, stabila releaser eller supportansvar är en laptop-tunnel fel tillförlitlighetsgräns.
Metod 1
Cloudflare EXE: snabbaste och renaste kommandoradsflödet
Cloudflares tunnelklient heter cloudflared. På Windows kan du installera den med winget eller ladda ner EXE-filen manuellt. För en kort utvecklingsförhandsvisning ger Quick Tunnel en slumpmässig HTTPS-URL utan portvidarebefordran, Cloudflare DNS-zon eller anpassad domän.
Starta den lokala appen
Öppna den lokala URL:en i din webbläsare först. Om appen inte fungerar lokalt kan en offentlig tunnel inte fixa det.
npm run dev
Installera cloudflared på Windows
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
Skapa den offentliga URL:en
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
Testa innan du delar
Öppna den genererade trycloudflare.com-URL:en i ett privat fönster eller på en annan enhet. Kontrollera inloggning, resurser, omdirigeringar och API-anrop innan du skickar den till någon annan.
https://example-random-name.trycloudflare.com
Stoppa tunneln medvetet
När demon eller webhook-testet är över, stoppa terminalprocessen. Om din dator går i viloläge eller kopplas bort slutar quick tunnel fungera ändå.
Ctrl+C
Stabila förhandsvisningsnamn
Slumpmässig URL eller anpassat Cloudflare-värdnamn?
Slumpmässiga URL:er är perfekta när länken kan försvinna efter ett test. Anpassade domäner är lämpliga när förhandsvisningen ska se stabil ut, till exempel demo.example.com, och du redan hanterar domänen i Cloudflare.
| Behov | Använd | Varför det passar |
|---|---|---|
| En fem minuters demo eller webhook-återkoppling | Slumpmässig URL | Inget konto eller DNS-arbete behövs, och länken är lätt att kasta efter testet. |
| En kundrecension som bör se märkesanpassad ut | Anpassad domän | Ett värdnamn du kontrollerar är lättare att känna igen, men det kräver din Cloudflare-zon, tokenbehörigheter, DNS och tunnelroutning. |
| En förhandsvisning som inte bör öppnas ovarsamt | Lösenordsskyddad länk | Lägg till ett lösenord innan du går offentligt, dela sedan URL och lösenord separat med den lilla grupp som behöver åtkomst. |
Andra alternativ
Andra sätt att exponera localhost
Du behöver inte ett verktyg för varje situation. Det bästa valet beror på om du vill ha en engångslänk, ett skrivbordsarbetsflöde, en märkesanpassad förhandsvisning, ett privat nätverksverktyg eller en avsiktligt hårdgjord egenhostad lösning.
| Verktyg | Typiskt kommando eller åtgärd | Bäst för | Se upp |
|---|---|---|---|
| Cloudflare Quick Tunnel | cloudflared tunnel --url http://localhost:5173
|
Snabba engångs-HTTPS-URL:er utan routerändringar. | Endast utveckling och test; slumpmässig URL; terminalens livscykel. |
| GhostlyShare | Välj Gå offentligt i skrivbordsappen
|
Upprepade lokala förhandsvisningar, webhook-tester, lösenordsskyddade demos och valfria anpassade Cloudflare-domäner. | Är fortfarande inte produktionshosting; din lokala app och maskin måste vara igång medan länken ska fungera. |
| ngrok | ngrok http 5173
|
Team som redan använder ngrok, reserverade domäner, trafikinspektion och leverantörsspecifika routningsfunktioner. | Kontouppgifter och abonnemangsdetaljer är viktiga; mer leverantörsinställning än en engångstunnel. |
| Tailscale Funnel | tailscale funnel 3000
|
Personer som redan använder Tailscale och vill ha en offentlig HTTPS-endpoint för en tailnet-enhet. | Kräver Tailscale-inställning och att Funnel är aktiverat för tailnet. |
| localtunnel | npx localtunnel --port 3000
|
Snabb Node-baserad localhost-delning för enkla tester. | Användbart för enkla förhandsvisningar; tänk noga innan du använder det för något känsligt. |
| Portvidarebefordran i router | Konfigurera router, DNS, TLS och omvänd proxy
|
Permanent egenhosting när du medvetet driver infrastrukturen. | Mer exponerad attackyta; patchning, brandväggsregler, loggar och TLS blir ditt ansvar. |
Webhook-testning
Detaljerna som sparar tid med webhooks
Webhook-leverantörer kan inte anropa http://localhost på din laptop. De kan anropa den offentliga tunnel-URL:en. Behandla den URL:en som en riktig extern integration: behåll signaturer aktiverade, använd exakt callback-sökväg och kontrollera omdirigeringar och CORS.
Använd hela callback-sökvägen
Om din mottagare lyssnar på /api/webhooks/stripe, klistra in den offentliga URL:en med samma sökväg, inte bara domänen.
Behåll signaturvalidering aktiverad
En offentlig tunnel gör det enklare att testa riktiga webhook-signaturer. Det är ingen anledning att stänga av signaturverifiering.
Övervaka bas-URL:er och vidarebefordrade headers
Om den offentliga URL:en omdirigerar tillbaka till localhost, konfigurera offentliga bas-URL:er, vidarebefordrade headers, betrodda proxys eller ramverksvärdsinställningar.
Testa från en ren webbläsarsession
Använd ett privat fönster eller en annan enhet så att cachelagrat localhost-tillstånd inte döljer problem med cookies, CORS, omdirigeringar eller blandat innehåll.
Felsökning
Åtgärda vanliga tunnelproblem först
Tunneln startar, men sidan är tom
Öppna den lokala URL:en direkt och kontrollera sedan om resurser, API-URL:er, WebSocket-URL:er eller miljövariabler fortfarande pekar på localhost.
Den offentliga URL:en omdirigerar till localhost
Många ramverk bygger omdirigeringar från förfrågningsvärden. Åtgärda vidarebefordrade headers, betrodda proxys, offentlig ursprung eller tvingade utvecklingsomdirigeringar.
Länken visas innan den fungerar
Cloudflare-routning, DNS, GhostlyShares lokala proxy och ursprungsappen kan behöva en kort stund för att synkronisera. Vänta några sekunder, uppdatera och testa igen.
HTTPS-certifikat för localhost orsakar fel
För korta förhandsvisningar, tunnla den lokala HTTP-slutpunkten när den finns. För längre konfigurationer, ställ in origin TLS medvetet istället för att gissa.
Hot reload eller WebSockets misslyckas
Använd ett verktyg som stöder WebSockets och se till att appen bygger ws- eller wss-URL:er från den offentliga värden, inte från en hårdkodad localhost-adress.
Säkerhet
Innan du skickar den offentliga URL:en
En offentlig förhandsvisnings-URL är fortfarande offentlig åtkomst. Lösenordsskydd kan minska oavsiktlig åtkomst, men gör inte en riskfylld lokal tjänst säker. Dela den snävaste URL:en, använd testdata och stoppa länken efter granskning eller webhook-test.
Använd testdata
Exponera inte riktiga kunduppgifter, databasadministrationsskärmar, interna dashboards, hemliga nycklar eller privata företagsdata.
Behåll appautentisering aktiverad
Om en funktion normalt kräver inloggning, ska den fortfarande kräva inloggning under den offentliga förhandsvisningen.
Använd lösenordsskydd för privata förhandsvisningar
För små granskningsgrupper, lägg till ett GhostlyShare-lösenord innan du går offentligt och dela det separat från länken.
Stoppa och rotera länkar
Stoppa tillfälliga länkar efter användning. Om en URL eller lösenord läcker i en ticket eller chatt, skapa en ny förhandsvisning istället för att återanvända.
Vanliga frågor
Vanliga frågor
Vad är det exakta Windows-kommandot?
Efter installation av cloudflared, kör cloudflared.exe tunnel --url http://localhost:PORT, byt ut PORT mot din apps lokala port, t.ex. 5173, 3000, 5080 eller 8080.
Är GhostlyShare bara ett gränssnitt för cloudflared?
Nej. GhostlyShare använder Cloudflare-drivna tunnlar, men lägger till ett skrivbordsarbetsflöde för appdetektering, slumpmässiga eller anpassade offentliga länkar, beredskapstillstånd, stopp av åtkomst och valfritt lösenordsskydd.
Kan GhostlyShare skydda en offentlig länk med lösenord?
Ja. Aktivera lösenordsskydd innan du går offentligt. Besökare måste ange lösenord innan GhostlyShare vidarebefordrar trafik till den valda lokala appen, men det ersätter inte riktig app-säkerhet.
Behöver jag portvidarebefordran i routern?
Nej för tunnelarbetsflödena i denna guide. cloudflared, GhostlyShare, ngrok, Tailscale Funnel och liknande verktyg öppnar utgående anslutningar från din dator, så du behöver vanligtvis inte portvidarebefordran i routern.
Kan jag testa webhooks via en lokal tunnel?
Ja. Starta den lokala webhook-mottagaren, exponera den via tunneln, klistra in den offentliga HTTPS-URL:en plus rätt callback-sökväg hos leverantören, skicka ett testevent och inspektera förfrågan lokalt.
Bör jag exponera adminverktyg eller databaser?
Vanligtvis nej. Exponera inte databas-konsoler, admin-dashboards, infrastrukturpaneler, debug-endpoints eller interna tjänster om de inte är avsiktligt hårdgjorda och avsedda att nås från internet.
Bör jag använda en laptop-tunnel för produktionstrafik?
Nej. Använd en riktig distribution eller en hanterad tunnel på infrastruktur som är avsedd att vara online, ta emot uppdateringar, övervakas och återhämta sig efter fel.