LocalTunnel Not Working? Alternatives
Common localtunnel problems
Developers often hit these issues with localtunnel:
| Symptom | Typical cause | |---------|---------------| | 503 Tunnel Unavailable | Shared public server overloaded or tunnel expired | | Connection refused | Local app not running on expected port | | Slow or flaky connections | Free shared infrastructure with variable load | | Subdomain already taken | Custom subdomain collision on shared server |
These are not unique to localtunnel — free shared tunnel services trade reliability for zero setup.
Quick fix checklist
Before switching tools, verify:
- Your local app is running and responds on the port you expect
- You specified the correct port:
lt --port 5173or equivalent - No firewall blocking outbound connections
- Try a fresh tunnel (subdomains can get stuck)
LocalToLink as an alternative
LocalToLink runs via npm with no global install:
npx localtolink --port 5173
| Feature | LocalToLink v1.0 |
|---------|------------------|
| Install | npx localtolink (Node ≥ 22.14) |
| HTTPS | Automatic |
| WebSocket | Supported |
| Reconnect | Same URL for 10 minutes after disconnect |
| Subdomain | Random 10-char (no custom in v1.0) |
| Session limit | 2 hours, 1 GB, 10 req/s |
| Request inspector | No (unlike ngrok) |
When localtunnel is still fine
- One-off quick share with no reliability requirements
- You already have it installed globally and it works
- You need a specific custom subdomain on localtunnel's free tier (LocalToLink custom subdomains require v1.5 Pro)
When to consider other tools
| Need | Consider |
|------|----------|
| Request inspection / replay | ngrok (paid) |
| Production-grade ingress | Cloudflare Tunnel |
| Zero npm, zero install | LocalToLink via npx still needs Node |
| Custom subdomain (free) | localtunnel --subdomain or wait for LocalToLink v1.5 |
See LocalToLink vs localtunnel for a detailed comparison.
Try it now
Start a tunnel from your project directory — no account required.
$ npx localtolink