Free · No public IP required · Install once, run forever

Your Localhost.
Exposed Globally.

A pure-Rust tunneling client that gives any local service a public URL or port. HTTP, TCP, and UDP — with self-healing reconnection, daemon persistence, and zero maintenance.

Install in one command

A single static binary. No runtimes, no dependencies, no config files to babysit.

$curl -fsSL https://router.direct/install.sh | sh

Then create a tunnel in the dashboard and run router install --server 77.42.121.237:2333 --token sk_live_… --subdomain myapp

How it works

No router config, no public IP, no moving parts you have to watch.

01

Create a tunnel

Pick a subdomain or reserve a TCP/UDP port in the dashboard and copy the generated API key.

02

Point it at localhost

One command connects your machine to the relay over TLS and authenticates with your key.

03

Go live

Traffic arriving at your public endpoint is piped straight to your local service. Nothing else to configure.

Built for always-on reliability.

Pure Rust. Native OS integration. Designed to install once and never think about again.

Self-Healing

Exponential backoff reconnection, a 40-second watchdog, and relay heartbeats. If the link drops, the client recovers on its own — no intervention, ever.

Daemon Persistence

One command installs a native system service — systemd or OpenRC on Linux, launchd on macOS, a scheduled task on Windows. Survives reboots and logouts.

Zero-Overhead Rust

A single memory-safe static binary built on tokio, handling thousands of concurrent streams at wire speed. No runtime to install.

HTTP, TCP & UDP

Subdomain-routed HTTPS for web apps, dedicated public ports for SSH, databases, and VNC, plus UDP tunnels for WireGuard and game servers.

Zero-Trust Security

TLS on every control and data channel, HTTPS at the edge, API tokens validated against Redis with instant revocation, and per-IP rate limiting on auth.

Unlimited Tunnels

No per-tunnel fees. Generate as many API keys and subdomains as you need and run concurrent tunnels to different local ports.

Whatever you're building

Preview & share

Give teammates and clients a live URL to the site running on your machine.

Webhooks & APIs

Receive inbound webhooks from Stripe, GitHub, or Slack against your local dev server.

WireGuard & UDP

Expose a WireGuard endpoint or game server through a dedicated public UDP port.

Remote access

Reach SSH, databases, or VNC on a machine behind NAT — from anywhere.

Frequently asked questions

How much does it cost?+

Nothing. Create as many tunnels, subdomains, and API keys as you need — there are no per-tunnel fees.

Do I need a public IP or router configuration?+

No. The client dials out from your machine to the relay, so it works behind any NAT, firewall, or CGNAT — no port forwarding, no dynamic DNS.

Is my traffic encrypted?+

The control and data channels between your machine and the relay are TLS-encrypted, public HTTP traffic is served over HTTPS at the edge, and UDP payloads travel inside the TLS data channel. No traffic is inspected or stored.

What happens if my machine reboots or the connection drops?+

With `router install` the tunnel runs as a native system service that starts on boot and restarts on failure. The client also reconnects on its own with exponential backoff, a 40-second watchdog, and relay heartbeats.

Can I run several tunnels at once?+

Yes. Create multiple tunnels in the dashboard and install each with its own `--service-name`, e.g. one for your web app and one for SSH.

What protocols are supported?+

HTTP/HTTPS via subdomains, raw TCP (SSH, databases, VNC, game servers), and UDP (WireGuard, DNS, game protocols).

How do I stop or remove a tunnel?+

Delete the tunnel in the dashboard (revokes the key instantly), run `router uninstall` to remove the local service, or press Ctrl+C if you're running in the foreground.

Your localhost deserves an audience

Free forever. Live in under a minute.

Start Tunneling Free