One Command Puts Your Localhost Online

Cloudflare Quick Tunnels give your localhost a public HTTPS URL in seconds — no account, no config, no port forwarding. Here's the catch.

Share

Stripe wants to POST to your laptop. GitHub wants to POST to your laptop. Your laptop, sitting behind NAT and a firewall, politely declines.

Cloudflare Quick Tunnels is sitting at the top of Hacker News today for a reason: one binary, one command, and your localhost gets a public HTTPS URL. No account, no config file, no port forwarding.

Why this matters

Every alternative is annoying. Deploying to staging for a webhook test burns minutes you don't have. ngrok wants a login and shows an interstitial page. "Just use my IP" fails the moment you're on different networks.

Quick Tunnels kill the ceremony. They're the fastest path from "it works locally" to "an external service can actually reach it" — which is exactly where most integration bugs hide.

How it works

cloudflared opens an outbound-only connection to Cloudflare's edge. Because the connection is outbound, NAT and firewalls are irrelevant — there's no inbound port to open.

In quick-tunnel mode, Cloudflare provisions an ephemeral tunnel and mints a random hostname under trycloudflare.com. Requests to that hostname ride the edge network down your tunnel to localhost. No account is needed because nothing persists: kill the process and the hostname evaporates.

Where this helps

  • Webhook development. Point Stripe, GitHub, or Slack at the URL and debug real payloads in your local handler instead of reading logs after the fact.
  • Real-device testing. Open the URL on your phone over LTE and hit your dev server — no "are we on the same Wi-Fi?" dance.
  • Live demos. Show work-in-progress to a designer or PM without a deploy. Their browser, your process.
  • Container debugging. Run it beside your docker-compose stack to reach a service with no published port.

Watch out

  • The URL is random and dies with the process. Every restart means re-registering that webhook. Stable hostnames require a named tunnel — and an account.
  • Quick mode is HTTP(S) only. Raw TCP, SSH, or RDP needs a named tunnel too.
  • Anyone holding the URL can reach your machine. Don't tunnel an unauthenticated admin panel — "it's just localhost" stops being true.
  • Cloudflare throttles heavy use. No video streaming, no big downloads. It's a dev tool, not free hosting.
  • You're routing traffic through a third party. Check your company's policy before tunneling anything sensitive.

Try it yourself

# macOS
brew install cloudflared

# Linux: grab the binary
curl -L -o cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x cloudflared

# Expose port 3000 — no account, no config
cloudflared tunnel --url http://localhost:3000
# → https://random-words-here.trycloudflare.com

TL;DR

  • What: Cloudflare Quick Tunnels put any local port behind a public HTTPS URL — one command, zero account.
  • Why: Webhook testing, phone testing, and live demos without deploying or touching your network.
  • Try: Run cloudflared tunnel --url http://localhost:3000 and paste the URL into your next webhook test.