# rapiz1/rathole

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rapiz1-rathole).**

13,777 stars · 784 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/rapiz1/rathole
- awesome-repositories: https://awesome-repositories.com/repository/rapiz1-rathole.md

## Description

Rathole is a high-performance reverse proxy and NAT traversal tool written in Rust. It functions as a secure tunneling server and client architecture designed to expose local services to the internet by forwarding traffic from a public IP to a private device behind a firewall.

The system establishes encrypted tunnels between a public server and a private host to ensure private communication. It utilizes token-based authentication to validate identities between the server and client for each individual service.

The project provides TCP and UDP port forwarding and manages private tunnels to facilitate remote service exposure. It includes capabilities for multiplexing multiple local services over a single network tunnel and supports dynamic configuration reloading to update active services without restarting the process.

## Tags

### Networking & Communication

- [Network Tunneling](https://awesome-repositories.com/f/networking-communication/network-tunneling.md) — Creates secure tunnels that wrap network traffic into persistent connections to bypass firewalls and NAT.
- [Connection Multiplexing](https://awesome-repositories.com/f/networking-communication/connection-multiplexing.md) — Routes traffic for multiple distinct local services over a single established network tunnel.
- [Remote Access Proxies](https://awesome-repositories.com/f/networking-communication/local-reverse-proxies/remote-access-proxies.md) — Creates encrypted tunnels between a public server and a private device for remote access to internal services.
- [NAT Traversal Mechanisms](https://awesome-repositories.com/f/networking-communication/nat-traversal-mechanisms.md) — Exposes local services to the internet by routing traffic through a public server to bypass firewalls.
- [Tunnel Managers](https://awesome-repositories.com/f/networking-communication/network-tunnels/tunnel-managers.md) — Establishes and maintains authenticated, encrypted connections between clients and servers to forward traffic.
- [Reverse Proxy Tunneling Tools](https://awesome-repositories.com/f/networking-communication/reverse-proxy-tunneling-tools.md) — Provides a high-performance system for exposing local services via a secure reverse proxy and NAT tunnel.
- [Secure Tunnels](https://awesome-repositories.com/f/networking-communication/secure-tunnels.md) — Provides a server-client architecture that encrypts traffic streams for private communication between hosts.
- [Service Exposure](https://awesome-repositories.com/f/networking-communication/service-exposure.md) — Makes internal home or office network services accessible from the web without a public IP address.
- [Service Tunnels](https://awesome-repositories.com/f/networking-communication/service-tunnels.md) — Creates secure tunnels from a public server to a local machine to grant external access to private services. ([source](https://github.com/rapiz1/rathole#readme))
- [TCP and UDP Forwarders](https://awesome-repositories.com/f/networking-communication/traffic-routing/tcp-and-udp-forwarders.md) — Forwards incoming TCP and UDP network traffic from a public IP to a private device.

### Security & Cryptography

- [Data Encryption](https://awesome-repositories.com/f/security-cryptography/data-encryption.md) — Wraps raw byte streams in a standardized encryption layer to secure data moving between nodes.
- [Encrypted Tunneling](https://awesome-repositories.com/f/security-cryptography/encrypted-tunneling.md) — Encrypts the data stream between server and client using standardized protocols to ensure privacy. ([source](https://github.com/rapiz1/rathole#readme))
- [Remote Service Authentication](https://awesome-repositories.com/f/security-cryptography/remote-service-authentication.md) — Validates connections between clients and servers using unique, service-specific tokens. ([source](https://github.com/rapiz1/rathole#readme))
- [Token-Based Authentication](https://awesome-repositories.com/f/security-cryptography/token-based-authentication.md) — Validates identity between the server and client using pre-shared secrets for each individual service.

### Development Tools & Productivity

- [Configuration Hot-Reloading](https://awesome-repositories.com/f/development-tools-productivity/configuration-hot-reloading.md) — Allows updating active services by refreshing configuration files without restarting the process. ([source](https://github.com/rapiz1/rathole#readme))

### Programming Languages & Runtimes

- [Tunneling Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/rust-network-frameworks/tunneling-implementations.md) — Implements a lightweight and efficient network tunnel using the Rust programming language.

### System Administration & Monitoring

- [Event-Driven I/O](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o.md) — Implements a high-performance non-blocking event loop to handle thousands of concurrent network connections.

### Part of an Awesome List

- [Tunneling and Proxying](https://awesome-repositories.com/f/awesome-lists/devtools/tunneling-and-proxying.md) — High-performance tunneling solution with hot-reload capabilities.
