A simple ngrok alternative for exposing localhost

tunnel.to creates a public HTTPS endpoint for an application running on your machine. Start with an anonymous tunnel and make it permanent only when you need to.

The client makes an outbound connection, so there is no inbound port to open, firewall rule to change, or server deployment to manage.

tunnelto 3000
Public HTTPS
No inbound ports
No firewall rules
Anonymous tunnels

Why developers use tunnel.to

  • Share a local development server
  • Receive and debug webhooks
  • Demo work in progress
  • Expose an API or AI agent
  • Make an MCP server remotely reachable
  • Give a third party temporary access to a local endpoint

tunnel.to vs ngrok

Capabilitytunnel.tongrok
Public HTTPS tunnelsYesYes
Use without an accountYesNo; agent setup uses an account authtoken
Stable hostnameReserved namesAccount development domain
Custom domainsYesYes, subject to plan and configuration
Product focusPublic reverse tunnelsIngress and API delivery platform

ngrok has evolved into a broad ingress and API-delivery platform. tunnel.to is deliberately narrower: get a local service onto a public HTTPS URL with as little ceremony as possible.

Verified September 23, 2026 against ngrok agent setup and ngrok plans and domain limits .

What about Tailscale Funnel?

Tailscale Funnel is a natural option when the service already lives inside a Tailscale environment. It requires a tailnet with MagicDNS and HTTPS enabled and publishes on the tailnet's ts.net domain. tunnel.to does not require a tailnet; it is intended for the direct case where a developer wants a public HTTPS endpoint for a local service.

Verified September 23, 2026 against Tailscale Funnel requirements .

Other tunneling options

Cloudflare Tunnel, Tailscale Funnel, localhost.run, LocalTunnel, Pinggy, and zrok all address parts of the local-to-public tunneling problem. The useful choice depends on whether you need a disposable URL, an existing private network, a broader edge platform, or a stable production endpoint.

Compare tunnel.to with Cloudflare Tunnel

Start disposable. Make it permanent later.

Try it

localhost → anonymous public URL

Keep it

localhost → persistent tunnel.to hostname

Own it

localhost → custom domain + access controls

Related guides

Frequently asked questions

What is an ngrok alternative?

It is another service or tool that creates a public endpoint for an application otherwise reachable only locally or privately.

Can I expose localhost without creating an account?

Yes. tunnel.to supports anonymous tunnels.

Does tunnel.to support custom domains?

Yes. Custom domains attach to reserved tunnel names.

What about Tailscale Funnel?

Tailscale Funnel is particularly relevant inside the Tailscale ecosystem. tunnel.to does not require a tailnet and focuses on direct public tunneling.

The shortest path from localhost to public HTTPS.

Start anonymously. Add a stable hostname or custom domain when you need one.

Install tunnelto