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 3000Why 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
| Capability | tunnel.to | ngrok |
|---|---|---|
| Public HTTPS tunnels | Yes | Yes |
| Use without an account | Yes | No; agent setup uses an account authtoken |
| Stable hostname | Reserved names | Account development domain |
| Custom domains | Yes | Yes, subject to plan and configuration |
| Product focus | Public reverse tunnels | Ingress 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 TunnelStart 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.