The TL;DR table
| ngrok | Cloudflare Tunnel | lrok | |
|---|---|---|---|
| Hosted | Yes | Yes (Cloudflare DNS required) | Yes |
| Free tier | URL rotates each restart | Real, with a domain | Reserved subdomain on free |
| Pro pricing | $8–25+ tiered + bandwidth | bundled with Cloudflare plan | $9/mo flat |
| Custom domain | Pro+ | Native | Pro |
| TCP tunnels | Pro+ | Spectrum (paid) | Pro |
| Concurrent tunnels | 1 free, more on paid | Unlimited | 1 free, unlimited Pro |
| Setup friction | None — ngrok http 3000 |
Auth + cloudflared install + DNS config | None — lrok http 3000 |
| Bandwidth metering | Yes | None | None |
| Interstitial warning page | Yes (free) | None | None |
ngrok
The original. Mature dashboard, big team, enterprise features (SOC 2, IP allow-listing, Traffic Policy DSL).
When ngrok wins:
- You're already paying for it; the integration is sunk-cost.
- You need enterprise compliance signals.
- You want the most polished mobile-app inspection experience.
When ngrok hurts:
- Free tier rotates the URL each restart — webhook providers' configs drift daily.
- Pricing scales with usage on most plans (bandwidth, requests, edge ops).
- Interstitial warning page on free tunnels confuses Stripe and similar.
Cloudflare Tunnel
Free tunneling bundled with any Cloudflare-managed domain. Cloudflare's cloudflared agent runs on your laptop or server; traffic flows over the same Cloudflare network that fronts the rest of your services.
When Cloudflare Tunnel wins:
- You already have a domain on Cloudflare.
- You want no per-tunnel pricing.
- You're tunneling a server (not a dev box) and want stable, well-engineered routing.
When Cloudflare Tunnel hurts:
- DNS must be on Cloudflare. Migrating from another provider is a chore.
- Setup involves
cloudflaredinstall +cloudflared service install+ domain routing config + Cloudflare dashboard. ~20 min the first time vs ~30 sec for ngrok / lrok. - TCP tunneling requires Spectrum, which is a separate paid product.
- The dev-loop ergonomics are not a focus — no built-in inspector, no transient subdomains, no quick "share this URL" flow.
lrok
The cheap, focused middle. Reserved subdomain on the free plan; flat $9/mo for Pro with no metering.
When lrok wins:
- You want a stable URL on the free tier (the ngrok-rotation problem solved at $0/mo).
- Predictable monthly bill, no usage scaling.
- No DNS to migrate.
- Open source-shaped (source published for review even though release binaries are closed).
When lrok loses:
- Smaller team — no SOC 2, no on-call hotline.
- Single edge region (Helsinki) — adds 100-180ms RTT from US-East.
- No Traffic Policy DSL or fancy enterprise routing.
A simple rule for picking
- Solo dev or small team, want a stable URL on free, fixed monthly cost → lrok.
- Already on Cloudflare, want bundled tunneling, OK with setup time → Cloudflare Tunnel.
- Need enterprise features, compliance, or fancy routing, and budget supports it → ngrok.
Try lrok in 30 seconds
$ curl -fsSL https://lrok.io/install.sh | sh
$ lrok login
$ lrok reserve mysite
$ lrok http 3000 --hint mysite
The reservation persists across restarts; the URL is yours until you release it.
lrok vs ngrok in detail · lrok vs Cloudflare · free ngrok alternatives