explaingit

anderspitman/awesome-tunneling

Analysis updated 2026-06-21

20,829Audience · ops devopsComplexity · 1/5Setup · moderate

TLDR

Awesome Tunneling is a curated list of tools that expose a local server running on your private machine to the public internet with HTTPS, aimed at developers and self-hosters who want alternatives to ngrok or Cloudflare Tunnel.

Mindmap

mindmap
  root((awesome-tunneling))
    What it is
      Curated tunnel list
      Expose local to internet
    Featured Tools
      frp comprehensive
      Pangolin self-hosted
      rathole Rust speed
      chisel SSH based
      bore minimal
    Use Cases
      Local dev sharing
      Home server expose
      Webhook testing
    Audience
      Self-hosters
      Developers
      DevOps engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Find an open-source alternative to ngrok for sharing a local development server at a public HTTPS URL.

USE CASE 2

Choose a self-hostable tunnel tool to permanently expose a home server through NAT or a restrictive firewall.

USE CASE 3

Compare tunneling options such as frp, rathole, bore, and chisel to pick one that fits your language preference and feature needs.

USE CASE 4

Set up a tunnel so incoming webhooks from a third-party service can reach your local development machine during testing.

How does it compare?

anderspitman/awesome-tunnelingpostgres/postgresmarimo-team/marimo
Stars20,82920,82820,818
LanguageCPython
Setup difficultymoderatehardmoderate
Complexity1/55/53/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min
The explanation does not specify a license.

In plain English

Awesome Tunneling is a curated list of tunneling tools and services maintained by Anders Pitman on GitHub. Tunneling here means software that lets you take a program running on a private computer, such as a web server on your laptop or inside your home network, and make it reachable from the public internet on a domain name with HTTPS, even though the machine sits behind a NAT or restrictive firewall. The list is aimed mainly at self-hosters and developers who want an alternative to commercial services like ngrok, Cloudflare Tunnel, Tailscale, or ZeroTier. The maintainer opens with what he calls "the dream": a single tool that registers a domain for you, points its DNS records at your tunnel server, automatically gets TLS certificates for the apex and subdomains, runs a non-root client that forwards HTTP or TCP traffic, and gives you a simple GUI to map a domain to a port on a chosen client. He notes that no project he has found does all of these things together. As a practical recommendation he points most readers at Cloudflare Tunnel for a polished closed-source experience, and for self-hosting he suggests Pangolin or frp for production use, or his own small SirTunnel project as a starting point to modify. The bulk of the README is a long list of open-source and source-available projects, each entry being a one or two sentence description with a GitHub star badge. Examples include frp (a comprehensive ngrok alternative with UDP, P2P, and multiplexing), Pangolin (self-hostable reverse-proxy manager with identity and access control and a dashboard), chisel (SSH under the hood plus Let's Encrypt certs, written in Go), rathole (similar to frp but in Rust, with hot reload), bore (minimal MIT-licensed tunnel in Rust), wstunnel (proxies over WebSockets to get past restrictive networks), gost (TCP and UDP tunneling, TAP/TUN, load balancing, written in Go), sish, zrok (built on OpenZiti), tunnelto, expose (PHP), localtunnel, sshuttle, telebit, tunnel.pyjam.as (uses WireGuard directly), and the original open-source ngrok 1.0. There is a policy note at the top dated 2026-02-16 saying that new entries now need at least 100 GitHub stars, with non-GitHub projects and commercial offerings handled case by case, because tunneling tools can be misused. The list is community-maintained through GitHub issues.

Copy-paste prompts

Prompt 1
I want to expose my local Node.js server on port 3000 to the internet using frp. Give me a minimal frp server and client config file for this.
Prompt 2
Help me choose between rathole and chisel for a self-hosted tunnel. My priorities are low memory usage and language familiarity. Compare them and recommend one.
Prompt 3
Set up a Pangolin reverse-proxy tunnel with automatic TLS so my home lab service is accessible at a subdomain I control.
Prompt 4
Configure bore to create a public tunnel to my localhost:8080 and keep it running as a systemd service so it restarts automatically.
Prompt 5
What is the difference between using Cloudflare Tunnel and a self-hosted option like frp for exposing a home server? Help me decide which fits my situation.

Frequently asked questions

What is awesome-tunneling?

Awesome Tunneling is a curated list of tools that expose a local server running on your private machine to the public internet with HTTPS, aimed at developers and self-hosters who want alternatives to ngrok or Cloudflare Tunnel.

What license does awesome-tunneling use?

The explanation does not specify a license.

How hard is awesome-tunneling to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is awesome-tunneling for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub anderspitman on gitmyhub

Verify against the repo before relying on details.