For a tool for creating secure reverse tunnels, the first results are jpillora/chisel (Chisel is a self-hosted reverse tunnel server and client that encapsulates TCP and UDP traffic within HTTP, includes granular access controls, and provides a management interface — exactly the secure, self-hosted ngrok alternative this search is after), erebe/wstunnel (wstunnel is a self-hostable tunnel server and client that uses WebSocket to tunnel arbitrary TCP and UDP traffic, with authentication and access control, making it a solid match for exposing local services—though it lacks a web management UI) and rapiz1/rathole (Rathole is a self-hostable reverse tunnel server and client that securely exposes local services via TCP/UDP tunnels with token-based authentication, fitting exactly as an ngrok alternative, though it lacks a web management UI and explicit HTTP support). rathole-org/rathole and fatedier/frp round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “reverse tunnel”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
Chisel is a network tunneling tool that facilitates secure communication by encapsulating TCP and UDP traffic within HTTP requests. It functions as a connection multiplexer, consolidating multiple logical network streams into a single persistent connection to improve throughput and reduce overhead. By leveraging standard web protocols, the system enables firewall traversal and provides a mechanism for remote port forwarding and proxying. The project distinguishes itself through its focus on resilient connectivity and granular access control. It maintains persistent network sessions across uns
Chisel is a self-hosted reverse tunnel server and client that encapsulates TCP and UDP traffic within HTTP, includes granular access controls, and provides a management interface — exactly the secure, self-hosted ngrok alternative this search is after.
wstunnel is a tool that tunnels arbitrary TCP traffic through WebSocket connections, enabling communication across restrictive firewalls and proxies. It operates as both a client and server, encapsulating TCP data within WebSocket binary frames and multiplexing multiple connections over a single WebSocket link. The tool supports mutual TLS authentication, requiring clients to present signed certificates for verification before establishing a tunnel, and provides shared secret access control and tunnel forwarding restrictions for additional security. The project distinguishes itself by offerin
wstunnel is a self-hostable tunnel server and client that uses WebSocket to tunnel arbitrary TCP and UDP traffic, with authentication and access control, making it a solid match for exposing local services—though it lacks a web management UI.
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 fa
Rathole is a self-hostable reverse tunnel server and client that securely exposes local services via TCP/UDP tunnels with token-based authentication, fitting exactly as an ngrok alternative, though it lacks a web management UI and explicit HTTP support.
Rathole is a reverse proxy tunneling tool designed to expose local services behind firewalls and network address translation to the public internet. It functions as a secure tunneling infrastructure that enables remote access to private network resources without requiring manual router port forwarding configurations. The system utilizes a client-server architecture where a public-facing gateway coordinates with a private-network agent. It distinguishes itself by multiplexing multiple logical service connections through a single persistent TCP stream, which reduces the overhead of maintaining
Rathole is a secure reverse tunnel server and client for exposing local services behind NAT, with TCP multiplexing, authentication via Noise protocol, and self-hosted deployment — it fits your intent as a ngrok alternative but lacks a dedicated web management UI.
This project is a high-performance reverse proxy designed to expose local services to the internet. It provides a comprehensive suite of tools for managing network traffic, including support for TCP and UDP stream multiplexing, connection pooling, and load balancing across proxy instances. The system facilitates secure communication through TLS encryption, data compression, and multiple authentication methods such as OpenID Connect, shared tokens, and basic password protection. The software offers granular control over HTTP traffic, enabling users to route requests based on subdomains or URL
frp is a self-hostable reverse tunnel server that exposes local services to the internet with support for TCP, UDP, and HTTP tunnels, built-in authentication, and a web management UI — exactly what the visitor wants as an ngrok alternative.
Bore is a TCP tunneling tool and localhost exposure utility used to route local TCP ports to public IP addresses. It functions as a TCP port forwarder that makes services running on a local machine accessible over the internet via a remote listener. The project includes a secure tunnel server implementation that manages incoming connections and routes traffic to connected local clients. It utilizes shared secret handshakes to authorize tunnel creation and restrict access to authorized users. The system provides capabilities for firewall bypass networking and remote tunnel hosting. It manages
Bore is a self-hostable TCP tunnel server with a client and shared-secret authentication, directly meeting the core need for exposing local services via reverse tunnels, though it lacks a web management UI and explicit HTTP tunnel support.
Expose is a secure tunneling tool that creates public URLs for local development servers, making them accessible from the internet without complex network configuration. It forwards incoming HTTP requests and responses between a public relay server and a local machine, enabling external services to reach a development environment that would otherwise be isolated behind a firewall or VPN. The project distinguishes itself through a comprehensive set of webhook debugging and inspection capabilities. It captures all incoming webhook requests and displays them in a real-time dashboard or command-l
Expose is a self-hosted reverse tunnel server for exposing local services to the internet with a real-time web dashboard and authentication, directly matching the search for an ngrok alternative, though it focuses on HTTP tunnels rather than raw TCP.
Teleport is a zero-trust access platform designed to provide secure, identity-based connectivity to servers, databases, and Kubernetes clusters. It functions as a centralized gateway that replaces static credentials with short-lived, identity-bound cryptographic certificates, effectively eliminating the need for traditional VPNs and long-term secret exposure. The platform distinguishes itself by orchestrating access through a unified control plane that maps external identity provider claims to granular, role-based infrastructure permissions. It enforces security through mutual TLS gateways an
Teleport is a zero-trust access platform that uses reverse SSH tunnels to securely expose internal services (web apps, SSH, databases) to the internet, with a self-hosted server, agent, web UI, and comprehensive authentication controls — covering your need for a self-hosted reverse tunnel server with strong identity-based access.
nodejs-argo is a Node.js network proxy server designed to route network traffic and manage secure communication tunnels across various protocols. It functions as a cloud proxy tunnel that exposes local services to the public internet and includes a subscription manager for generating and distributing connection configuration links to clients. The system integrates a network service monitor to track the operational status and performance of services via external monitoring panels. It also utilizes endpoint-based configuration distribution to provide connection settings and authentication detai
This repository is a self-hostable Node.js reverse tunnel server that exposes local services to the internet, supports multiple proxy protocols (including TCP and HTTP), and includes client configuration distribution — directly matching the ngrok-alternative use case.
reGeorg is an HTTP tunneling proxy and network tunneling tool designed to route network traffic to internal targets. It functions as a remote port forwarder that wraps socket communication within HTTP requests to bypass firewalls. The tool includes a SOCKS5 proxy server implementation that converts tunneled traffic into a usable interface. This allows external networking tools to route data through a remote host into restricted internal network boundaries. The project provides capabilities for network pivoting, including generic network tunneling and SOCKS proxy configuration to facilitate c
reGeorg is an HTTP tunneling proxy for network pivoting and firewall bypass, not a self-hosted reverse tunnel server that exposes local services to the internet with a web management UI or access control.
ngrok is a secure TCP tunneling proxy and API ingress controller that exposes local services to the public internet. It establishes a persistent connection between a local agent and a cloud-based gateway to route traffic to local ports without requiring firewall or router configuration changes. The project provides a global gateway for routing API traffic, which includes built-in support for rate limiting and authentication policy enforcement. It also functions as an IoT device gateway, enabling remote command execution and access control for embedded hardware via a cloud-to-device bridge. A
This repository is the original ngrok code for the cloud-hosted tunnel service, not a self-hosted alternative — if you want to run your own server instead of using ngrok's gateway, look for a project designed for self-deployment.
SoftEtherVPN is a multi-protocol virtual private network server that provides secure remote access and site-to-site connectivity. It functions as a virtual network gateway, enabling encrypted communication across public internet connections while supporting both Layer 2 Ethernet bridging and Layer 3 IP routing to manage traffic between connected devices. The platform is designed to maintain connectivity in restrictive network environments by bypassing firewalls and NAT devices through techniques such as HTTPS, ICMP, and DNS-based tunneling. It eliminates the requirement for static public IP a
SoftEtherVPN is a multi-protocol VPN server designed for secure remote access and site-to-site connectivity, not a dedicated reverse tunnel server like ngrok; while it can tunnel through firewalls, its core purpose is network-level VPN rather than exposing individual local services via public URLs.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| jpillora/chisel | 15.6K | Go | mit | |
| erebe/wstunnel | 6.4K | Rust | bsd-3-clause | |
| rapiz1/rathole |
| 13.8K |
| Rust |
| Apache-2.0 |
| rathole-org/rathole | 12.8K | Rust | apache-2.0 |
| fatedier/frp | 107.4K | Go | Apache-2.0 |
| ekzhang/bore | 11.2K | Rust | MIT |
| exposedev/expose | 4.5K | PHP | mit |
| gravitational/teleport | 19.9K | Go | agpl-3.0 |
| eooce/nodejs-argo | 6.8K | JavaScript | — |
| sensepost/regeorg | 3.2K | Python | other |