rathole

Expose services behind NAT through a server with a public IP.

rathole is a self-hosted reverse proxy for reaching services on devices behind NAT. A client connects to a publicly reachable server, which forwards traffic to configured local services. Each service uses its own authentication token.

The client and server are implemented in Rust with Tokio. Configuration supports TLS or Noise encryption and hot-reloading service definitions. Running it requires both a reachable server and a client on the private network.