Tailscale is a fantastic VPN. But if you just need to expose a local port, stunl does it without setting up a tailnet.
| Feature | stunl | Tailscale Funnel |
|---|---|---|
| Price | Free / $10/mo (Pro) | Free (with Tailscale) |
| Setup Required | None (one command) | Tailnet + MagicDNS + Policy file |
| Port Restrictions | Any port | Only 443, 8443, 10000 |
| Multi-port Tunnels | Yes | No |
| HTTP/HTTPS | Yes | Yes |
| TCP (raw) | Yes | HTTPS only (TLS required) |
| UDP Tunnels | Yes | No |
| WebSocket | Yes | Yes |
| Custom Subdomain | Yes | *.ts.net only |
| Use Case | Tunneling only | Part of VPN mesh |
Tailscale Funnel only works on ports 443, 8443, and 10000. stunl exposes any port — including 3000, 8080, 5432, or whatever your app uses.
stunl -port 3000# Works. No port restrictions.
Funnel requires you to install Tailscale, set up a tailnet, enable MagicDNS, and configure your policy file. stunl is one binary, one command.
Tailscale Funnel is HTTPS-only (TLS-encrypted TCP). stunl handles UDP natively for game servers, VoIP, and real-time applications.
Expose frontend, API, and database through one URL. Funnel doesn't support this — you'd need separate configurations for each.
Tailscale is a VPN with a tunneling feature. stunl is a tunneling tool — focused, simple, and powerful. If you need a VPN mesh, use Tailscale. If you need to expose localhost, use stunl.
No VPN setup. No policy files. One command, public URL.
Free tier available. No credit card required.