ngrok, Cloudflare Tunnel, localtunnel, Pinggy, zrok, VS Code and more: free limits, warning pages, passwords and prices, checked October 2026.
By Mads Sauer, who makes ouicu, one of the tools here, so read it as a maker's comparison: each fact about another product links to that product's own page, read on . Published .
There is no single best way to share localhost. Below, the common tunnels answer the same questions, each answer from the tool's own page, then the hosts that preview a build instead. Use the table to rule tools out, and the sections under it for the details that decide.
How we compared
On , we read each tool's own pricing page and docs, and wrote down only what they say. Every fact links to its page, listed under Sources.
Where a page says nothing, the table says “Not stated” rather than guess. Where only a third party says something, we say so.
We make ouicu. Its numbers come from its own code, and the sections below say where other tools do better.
Facts are read again at least every three months; the date at the top moves when they are.
The table
As of , from each product's own pages (listed under Sources). Prices in US dollars.
1 GB out and 20,000 HTTP requests a month, up to 3 online endpoints
Yes, on HTML browser traffic; after Visit, a cookie hides it for 7 days
OAuth, OpenID Connect, SAML or basic auth
1 stable dev domain, on Free too
HTTP and TCP; TLS from Pay-as-you-go
Its open source v1 is archived
Cloudflare Tunnel
Free: Tunnel is on every plan
Quick Tunnels: 200 requests in flight, then 429
None in the Quick Tunnel docs' list of limits
Cloudflare Access sign-in, free up to 50 users
Quick Tunnels: a new name each run
HTTP for visitors; TCP, SSH and RDP need cloudflared on their side too
cloudflared is open source (Apache-2.0)
localtunnel
Not stated
Not stated
Visitors must type a tunnel password: your public IP address, from loca.lt/mytunnelpassword
Not stated
A name you ask for with --subdomain isn't promised
Not stated
Yes, MIT; you can run your own server
localhost.run
Custom domain, $9 a month billed yearly
A speed limit, and a name that changes
Not stated
Not stated
A stable domain on the paid plan
Not stated
Not stated
serveo
Pro, $6 a month or $60 a year
3 tunnels, with custom subdomains
Yes, on anonymous and free tunnels; not on paid ones
Not stated
Not stated
Not stated
Not stated
Pinggy
Pro, $3 a seat a month, or $2.50 billed yearly
60-minute tunnels, unlimited data
Yes, once per browser; none on Pro
Basic auth with a username and password
A new random name after each restart on Free
HTTP(S), TCP, UDP and TLS
Not stated
Tunnelmole
Essential, $9.99 a month
No signup
Not stated
Not stated
Not stated
Not stated
Yes, an MIT client and an AGPL-3.0 server you can host
zrok
No public price; NetFoundry sells commercial plans
5 GB a day, 50 shares
Yes, on free accounts; adding a card removes it
Not stated
Reserved shares keep a name
HTTP, TCP and UDP
Yes, Apache-2.0, and you can host it yourself
LocalXpose
PRO, $8 a month billed yearly ($96)
2 HTTP(S) tunnels, with time limits
Yes, on the free plan
Basic auth, key auth and IP allowlists on every plan
Not stated
HTTP(S), TCP, TLS and UDP on PRO
Not stated
Expose
Pro, $79 a user a year
A time limit, random URLs, one EU server
Not stated
Access control on Pro
Persistent URLs and custom domains on Pro
Not stated
Yes, MIT, with your own server
Microsoft dev tunnels
No price listed; in public preview, without an SLA
5 GB a month, 10 tunnels, up to 20 MB/s
“When connecting to a web-forwarding url for the first time, users are presented with an interstitial anti-phishing page.”
Private by default; or anyone, your Entra tenant or a GitHub organization
Not stated
Not stated
Not stated
Tailscale Funnel
Free for up to 6 users; Standard $8 a user a month
On every plan; bandwidth limits that can't be changed
Not stated
None for visitors: a Funnel port is public
A stable name, on your tailnet's ts.net domain only
TLS on ports 443, 8443 and 10000 only
Not stated
LocalCan
Solo, $8 a month
1 live link, 60-minute sessions, 1 GB a month
Not stated
Password, secret link and IP rules, from Solo
Snapshots: a copy that stays up with the laptop off
HTTPS and TCP on paid plans
Not stated
ouicu
Hobby, $4 a month
1 share at a time, 2 hours each, 1 GB a month
Yes, a notice on page loads, once a week per browser and share; none on Hobby and Pro
Password on Hobby and Pro; invited emails on Pro
Reserved names on Hobby and Pro
HTTP and WebSockets, web pages only
No; the MCP server and SDK are MIT
Free plans: the limits that bite
Time
Pinggy Free: 60-minute tunnels, unlimited data.
LocalCan Free: 1 live link, 60-minute sessions, 1 GB a month.
Expose's free plan: a time limit, random URLs, one EU server.
ouicu Free: a share runs 2 hours.
ngrok is the exception: free endpoints have no timeout.
Data
ngrok Free allows 1 GB out and 20,000 HTTP requests a month, up to 3 online endpoints. zrok allows 5 GB a day, 50 shares, Microsoft dev tunnels 5 GB a month, 10 tunnels, up to 20 MB/s, and ouicu Free 1 GB a month.
Names that change
Cloudflare's Quick Tunnels give a new name each run. localhost.run's free plan has a speed limit, and a name that changes. On localtunnel, a name you ask for with --subdomain isn't promised. When the name changes, the link you sent last week is dead.
Passwords and sign-in
ngrok: OAuth, OpenID Connect, SAML or basic auth, set in Traffic Policy.
Cloudflare: Cloudflare Access sign-in, free up to 50 users.
Pinggy: basic auth with a username and password. LocalXpose: basic auth, key auth and IP allowlists on every plan.
VS Code's port forwarding is private by default:
“you'll be required to sign in with the same GitHub account you used to start the port forwarding process”
ouicu: a password with Hobby and Pro; invited email addresses with Pro.
localtunnel is the odd one out: visitors must type a tunnel password: your public IP address, from loca.lt/mytunnelpassword. It has shown a reminder page since at least November 2020, and the client's last release is 2.0.2, from September 2021.
Stable links and custom domains
ngrok: 1 stable dev domain, on Free too.
Tailscale Funnel: a stable name, on your tailnet's ts.net domain only.
localhost.run: a stable domain on the paid plan, custom domain, $9 a month billed yearly.
zrok: reserved shares keep a name. Expose: persistent URLs and custom domains on Pro.
ouicu: reserved names with Hobby and Pro; on Pro, up to 5 subdomains of your own, like preview.yourstudio.com. No root domains.
Protocols
For SSH, databases or games you need TCP or UDP. Pinggy has HTTP(S), TCP, UDP and TLS; zrok HTTP, TCP and UDP; LocalXpose HTTP(S), TCP, TLS and UDP on PRO. On Cloudflare, HTTP for visitors; TCP, SSH and RDP need cloudflared on their side too. Tailscale Funnel takes TLS on ports 443, 8443 and 10000 only. ouicu carries HTTP and WebSockets, and only what web pages are made of.
Open source and self-hosting
localtunnel: yes, MIT; you can run your own server.
zrok: yes, Apache-2.0, and you can host it yourself.
Expose: yes, MIT, with your own server.
Tunnelmole: yes, an MIT client and an AGPL-3.0 server you can host.
Cloudflare: cloudflared is open source (Apache-2.0).
ngrok: its open source v1 is archived.
ouicu's command line tool is closed source and the service is hosted; its MCP server and SDK are MIT.
Previews without a tunnel
If the client can wait for a build, a host can show it with your laptop off. What decides it is who can open the preview, and what a password costs:
As of , from each product's own pages (listed under Sources). Prices in US dollars.
Preview hosts: the free plan, and what a password costs
On the free plan
A password
Vercel
“the Hobby plan restricts users to non-commercial, personal use only”
Password Protection: not on Hobby; $20 per month per protected project on Pro
Netlify
Teams made from 28 July 2026 start private, and previews need a Netlify login
Run a tunnel: a small program that gives your port a public https address. The table above compares them; the guide How to share localhost walks through one.
What is the best free tunneling service?
For a long-running link, ngrok's free plan; with a domain on Cloudflare, Cloudflare Tunnel; for TCP and UDP, Pinggy or zrok. For a client, a free plan's warning page or changing name is the problem, so look at what removes it.
Is there a free TCP tunneling service?
Yes: Pinggy's free plan lists TCP and UDP, and zrok's does too. ngrok Free has TCP once you add a card.
Is localtunnel safe to use?
It is open source, so you can read it or run your own server. Its hosted page asks visitors for your public IP address, which hands that address to everyone you send the link to.
Try ouicu
Install it (Getting started), then share a dev server, or upload a build:
ouicu share 3000ouicu deploy ./dist
Add a password (Hobby and Pro) with --password. The pricing has every plan.
Sources
Prices, defaults and quotes about other products, and the day each was last checked at its source.