(Much of the prose originates from https://github.com/anderspitman/awesome-tunneling)
The idea is a simple tool/service that does the following:
- Allows me to register a domain name and automatically points the records at the server running the tunnels.
- Automatically sets up and manages HTTPS certificates (apex and subdomains) for the domain.
- Provides a client tool that tunnels HTTP/TCP connections through the server without requiring root on the client.
- Provides a simple GUI interface to allow me to map X domain/subdomain to Y port on Z client, and proxy all connections to that domain.
So far I haven't found a tool that does all of this. In particular, while some of them can do automatic certs through Let's Encrypt, none of them integrate the domain registration and DNS management in a simple way.
Recommendations
- For most people, I currently recommend Cloudflare Tunnel. Although it's closed source, this is the production-quality service that gets the closest to achieving the dream. It's also a loss-leader for Cloudflare's other products which means they can offer it for free.
- If you want to self-host, there are many options. For something production ready I would look at Pangolin or frp. If you're a developer and want something very simple, I'd recommend starting with my own SirTunnel project and modifying it for your needs.
Open source (at least with a reasonably permissive license)
Commercial/Closed source
- ngrok 2.0 - Probably the gold standard and most popular. Closed source. Lots of features, including TLS and TCP tunnels. Doesn't require root to run client.
- Cloudflare Tunnel - Excellent free option. Nicely integrates tunneling with the rest of Cloudflare's products, which include DNS and auto HTTPS. Client source code is Apache 2.0 licensed and written in Golang.
- Microsoft Dev Tunnels - Not as useful for self-hosting (no custom domains and it shows warnings when people visit the URLs), but a solid option for dev work.
- Livecycle Docker Extension - Offer much more than just tunneling. Have a collaboration layer (Dashboard) that allows you to bring collaborations, debug, and gather feedback from the people you are working with. Share HTTPS URLs.
- Beeceptor - Goes beyond tunneling. Rest API mocking and intercepting tool. You can view the live requests and send mocked responses. Written in JavaScript.
- Pinggy - SSH based single command HTTPS / TCP / TLS tunnels, no downloads required. Rich terminal interface and a web debugger. Free tier - 60 min timeout. The paid tier allows custom domains with built-in Let's Encrypt certificates.
- Loophole - Offers end-to-end TLS encryption with the client automatically getting certs from Let's Encrypt. QR codes for URL sharing. The client is open source. Can serve a local directory over WebDAV. MIT License. Written in Go.
- localhost.run - Simple hosted SSH option. Supports custom domains for a cost.
- Packetriot - Comprehensive alternative to ngrok. HTTP Inspector, Let's Encrypt integration, doesn't require root and Linux repos for apt, yum and dnf. Enterprise licenses and self-hosted option.
- Horizon Tunnel - Easy to use HTTP(S) and websocket tunneling aimed at development. Free tier available. Fixed URL is part of paid plans.
- Hoppy - WireGuard-based. Provides static IPv4 and IPv6 addresses for your machines, which is a simple and useful level of abstraction. Targeted towards self-hosters and people behind NATs.
- gw.run - Specifically focusing on securely exposing internal web apps to a group of people; not for publicly facing apps. Share access via email address then allow users to log in with common login providers like Google.
- SSHReach.me - Paid SSH-based option. Uses a simple Python script.
- KubeSail - Company offering tunneling, dynamic DNS, and other services for self-hosting with Kubernetes.
- inlets - Used to be open source; now focused on a polished commercial offering. Designed to work well with Kubernetes.
- LocalToNet - Supports UDP. Free for a single tunnel. Paid supports custom domains.
- LocalXpose - Looks like a solid paid option, with a limited free tier.
- playit.gg
- Specifically marketed as tunneling for game servers. Client is open source. Server is not. Has a free tier. TCP and UDP supported. Custom domains and dedicated IPs available. Client written in Rust.
- Tabserve.dev - Web UI that runs entirely in the browser and uses a Cloudflare Worker for https.
- TunnelAPI 2.0 - With a lot of features for teams and enterprises, including the AI API Gateway (a single gateway to multiple models), API Workflow, and exposing localhost to the internet with a custom subdomain. Doesn't require root to run the client.
- Serveo - SSH-based, signup optional, offering HTTP(S) and TCP tunneling and SSH jump host forwarding capabilities.
- Homeway - Secure and private remote access for Home Assistant. The free tier has a monthly data limit cap, but unlimited data is only $2.49/month.
- btunnel - Expose localhost and local tcp server to the internet. The free plan includes file server, custom http request and response headers, basic auth protection and 1 hour tunnel timeout.
- instatunnel - Hosted tunneling service offering HTTP/TCP tunnels and custom domain support. Suitable for quickly exposing local services with built-in HTTPS and simple setup. Allows for 3 simultaneous tunnels
- remote.it - Tunnels SSH, HTTP/S, TCP, Docker, popular database etc. allows mapping a local port to a remote port.
- StaqLab Tunnel
- SSH-based. The client is open source. The server doesn't appear to be.
- LocalCan - MacOS app for exposing local apps, has custom domains with built-in Let's Encrypt certificates. It also can publish .local domains on the local network.
- Openport.io
- Open-source client, written in Go. Supports HTTP(S) and TCP. REST Api. No account needed. Web dashboard. Also works on ESP32.
- Lokal.so HTTP/TCP/UDP Tunneling & Debugging, zero-config .local address with https, built-in S3 Server, AI Assistant, available as Desktop GUI, Web, REST API, and *CLI, available on Mac, Windows and Linux.
- Optimistix Tunnel - Easily expose your local server to the internet with simple SSH-based tunneling. Supports HTTP(S) and TCP. No signup, no install—just connect and go. Free plan available.
Overlay networks and other advanced tools
- headscale
- Open source implementation of Tailscale control server. Can be used with Tailscale's official open source client. Written in Go.
- Tailscale
- Built on WireGuard. Easy to use. Control server is closed source. Client code available with a BSD3 license + separate patents file.
- Teleport
- Comprehensive control plane tool, but also supports accessing apps behind NATs. Written in Go.
- Nebula -
Peer-to-peer overlay network. Developed and used internally by Slack. Similar to Tailscale but completely open source. Doesn't use WireGuard. Written in Go.
- ZeroTier -
Layer 2 overlay network. They take decentralization seriously, and like to say "decentralize until it hurts, then centralize until it works." Written in C++.
- Netmaker
- Layer 3 peer-to-peer overlay network and private DNS. Similar to Tailscale, but with a self-hosted server/admin UI. Runs kernel WireGuard so very fast. Apache 2.0 License. Written in Go.
- NetBird
- NetBird is an open-source VPN management platform built on top of WireGuard® making it easy to create secure private networks for your organization or home.
- Firezone
- Layer 3/4 overlay network. Runs on kernel WireGuard® and supports SSO using generic OIDC/SAML connectors. Distributed under Apache 2.0 license and written in Elixir/Rust.
- iroh
- A QUIC way of doing peer-peer connectivity using 'dialing by public key' for all applications. MIT or Apache 2.0 License. Written in Rust.
- n2n -
- Built on nodes and supernodes. GPL-3.0 license. Written in C.
- innernet
- Similar to Netmaker, Nebula, and Tailscale. Takes advantage of existing networking concepts like CIDRs and the security properties of WireGuard to turn your computer's basic IP networking into more powerful ACL primitives. Written in Rust.
- Portals for Mac
- A Mac app that uses the Ockam library to privately share a service on your Mac to anyone, anywhere. The service is shared securely over an end-to-end encrypted Ockam Portal. Apache 2.0 License. Written in Rust.
- Pritunl
- Seems quite comprehensive and complicated. OpenVPN, WireGuard, and IPSec support.
- Tinc
- Tinc is a peer-to-peer VPN daemon that supports VPNs with an arbitrary number of nodes. Instead of configuring tunnels, you give Tinc the location and public key of a few nodes in the VPN. After making the initial connections to those nodes, tinc will learn about all other nodes on the VPN, and will make connections automatically. When direct connections are not possible, data will be forwarded by intermediate nodes. Written in C.
- OpenZiti -
- Overlay network. The goal of OpenZiti is to extend zero trust all the way into your application, not just to your network. Apache 2.0 license. Written in Go.
- weron -
- Built on WebRTC. Can create Layer 2 and Layer 3 networks. NAT traversal via STUN and TURN. AGPL-3.0 license. Written in Go.
- bifrost
- Bifrost is a peer-to-peer communications engine with pluggable transports. It supports dynamic configuration of transports, listeners, forwarding rules, and can tunnel other protocols over WebRTC and Quic. Apache 2.0 License. Written in Go.
- connet
- connet is a p2p reverse proxy with NAT traversal. Uses QUIC as a protocol and is written in Go. Apache 2.0 License.
- Ngrok-operator
- Ngrok but integrated with Kubernetes, allows developers on private Kubernetes to easily access their services via Ngrok.
- chisel-operator
- Kubernetes integration for Chisel. Similar functionality to inlets. MIT License. Written in Rust.
- frp-operator
- Kubernetes integration for FRP. MIT License. Written in Go.
- Mycoria
- Overlay network where the IPv6 address is the key: Easily share address + public key via a DNS AAAA record or map names locally. Secure by default (firewall included). BSD-3 license. Written in Go.
- Nilloc - Developer-focused. Aims to have better pricing than ngrok. Free tier.
Resources
Articles/Blogs/Essays
Discussions
Web
Tags:
distribution
tool
Last modified 03 November 2026