tunnelize.it
New · keep the same URL, no account

tunnelize.it Your localhost, public in one command.

tunnelize.it turns a local app into a public HTTPS link over plain SSH. Keep the same address across reconnects, or ask visitors for a password. Nothing to install, no sign-up.

Enter the port your app listens on, then copy and run the command.

// how it works

Your SSH client already knows how to do this.

SSH can forward a port in reverse. tunnelize.it sits on the other end: it gives that connection a public HTTPS address and passes each request down the tunnel to your machine.

Anyone with the link

happy-tiger-a1b2c3d4.tunnelize.it
HTTPS to the public URL

tunnelize.it edge

TLS certificate, phishing warning and rate limits happen here

Your machine

SSH tunnel you opened outbound · localhost:3000

No router ports, no firewall rules, no background daemon. Close the terminal and the tunnel closes. Use the Stable tab to get the same URL back next time.

// built for

Point anything on the internet at your laptop.

Webhooks, demos, phones and OAuth callbacks — one SSH command, with an optional stable address or visitor password.

Webhook testing

Receive Stripe, GitHub or Slack webhooks on your machine and debug them live. A stable URL means you register the endpoint once.

ssh -t -R 80:localhost:3000 [email protected]

Demo sharing

Send a client or teammate a live link to what you’re building, hot reload included. Add a password when the link shouldn’t be open to everyone.

ssh -t -R 80:localhost:5173 [email protected]

Testing on real phones

Open your dev build on a real device over mobile data. tunnelize.it can print a QR code in the terminal to scan.

ssh -t -R 80:localhost:8080 proxy.tunnelize.it

OAuth & CI callbacks

Give OAuth providers and CI jobs a real HTTPS redirect URL that hits your local environment — and keep it the same so you configure it only once.

ssh -t -R 80:localhost:4000 [email protected]

// compare

An honest comparison.

Every tool here is good at something. tunnelize.it is for when you want a URL right now, with nothing to install — plus free stable URLs and visitor passwords.

Feature tunnelize.it ngrok Cloudflare quick tunnel
Nothing to install Yes — plain SSH Needs its agent Needs cloudflared
No account needed Yes No Yes
Same URL every time Free, no account With an account Account + own domain
Visitor password Built in Paid / config No
Price Free Free tier + paid Free

// faq

Frequently asked questions.

Short answers for the first time you run the command.

What is tunnelize.it?
tunnelize.it is a free localhost tunnel. Running ssh -t -R 80:localhost:3000 proxy.tunnelize.it gives the web server on port 3000 of your machine a public HTTPS URL, such as https://happy-tiger-a1b2c3d4.tunnelize.it, for as long as the SSH session is open.
Is tunnelize.it free?
Yes, with fair-use limits: 3 tunnels at once per IP, 25 requests per second per visitor, and tunnels that last up to 24 hours.
Do I need to install anything or create an account?
No. tunnelize.it works with the SSH client that ships with macOS, Linux and Windows 10 or later. There is no agent to download, no sign-up and no auth token.
Can I keep the same URL every time?
Yes. Connect as [email protected] and your SSH key gives you the same URL on every connection. Any key works; there is nothing to register. Without a key, static@ is refused. Only someone with your private key can claim that URL.
Can I password-protect the tunnel?
Yes. Connect as [email protected]. Visitors must pass HTTP basic auth; the username is always tunnelizer and a short pronounceable password is printed in your terminal banner for that connection.
Can I choose my subdomain name?
No. Stable URLs are generated from your SSH key rather than chosen, which keeps them free of sign-ups and name squatting. Connections without static@ get a new random URL each time.
Does tunnelize.it support WebSockets?
Yes. WebSocket connections are proxied automatically, with up to 1 GB of data per direction per connection and a 2-hour idle timeout. Hot module reload from dev servers like Vite works over the tunnel.
Why do visitors see a warning page?
To protect people from phishing, the first time someone opens a tunnelize.it URL in a browser they see a page explaining that the site runs on someone’s computer. It’s shown once a day per site. Webhooks, curl and other non-browser clients go straight to your app; browser-like clients can skip it by sending the tunnelize-skip-browser-warning header.
Is traffic through tunnelize.it encrypted?
Every tunnel is served over HTTPS with a wildcard certificate, and traffic travels from the tunnelize.it edge to your machine inside your SSH connection. TLS terminates at the tunnelize.it edge, so it is not end-to-end encryption.
Why does my dev server say “Blocked request” or “Invalid Host header”?
Dev servers such as Vite, Next.js, webpack, Rails and Django reject hostnames they don’t recognize. Add .tunnelize.it to the allowed hosts in your dev server’s config.