Compare commits

..

106 commits

Author SHA1 Message Date
Anders Pitman
414af75985
Merge pull request #104 from luker983/master
Add wiretap entry
2023-10-19 21:14:58 -06:00
Luke Rindels
a00f7987c8
Merge branch 'master' into master 2023-10-19 16:43:28 -06:00
Anders Pitman
28c9206b65
Reorder 2023-10-17 09:39:54 -06:00
Anders Pitman
0d8c3cacd1
Reorder 2023-10-17 09:37:37 -06:00
Anders Pitman
90c1ea87b7
Put Punchmole and GT in proper positions and update them 2023-10-17 09:35:34 -06:00
Anders Pitman
0a2f9464ea
Merge pull request #116 from peerless2012/patch-1
Add gt by ao-space.
2023-10-17 08:44:59 -06:00
Anders Pitman
8f495c47e1
Merge pull request #115 from degola/master
Added Punchmole
2023-10-17 08:40:10 -06:00
peerless2012
cc7696879c
Add gt by ao-space. 2023-10-17 11:04:18 +08:00
Sebastian Lagemann
73bdf90452
Added Punchmole
Added Punchmole to list
2023-10-16 13:29:58 +02:00
Anders Pitman
d80f3db407
Merge pull request #113 from trevordixon/patch-1
Add Serveo to the list
2023-10-04 13:02:15 -06:00
Anders Pitman
f9c00ae003
Update recommendations
Apparently Cloudflare Tunnel no longer prohibits non-HTML content in their ToS. See https://blog.cloudflare.com/updated-tos/
2023-10-04 13:01:47 -06:00
Trevor Dixon
14dc706c62
Add Serveo to the list 2023-10-02 00:13:37 +02:00
Anders Pitman
a73f7b1496
Merge pull request #108 from korewaChino/korewaChino-patch-1
Add chisel-operator to advanced tools
2023-08-09 13:27:59 -06:00
Cappy Ishihara
7c39beb74b
Add chisel-operator to advanced tools 2023-08-06 11:57:09 +07:00
Anders Pitman
17a41fc781
Merge pull request #90 from DigitallyRefined/add-docker-wireguard-tunnel
Add docker-wireguard-tunnel
2023-07-17 23:15:34 -06:00
Anders Pitman
3f710dd56f
Merge pull request #92 from heliostatic/master
Tailscale now has a public funnel
2023-07-17 22:59:24 -06:00
Anders Pitman
9c78777d88
Merge pull request #103 from emadda/add-tabserve-dev
Add tabserve.dev
2023-07-17 22:52:57 -06:00
Luke Rindels
733d7fe189
Add wiretap entry 2023-07-03 18:13:49 -06:00
Enzo
38cc9e8af0
Add tabserve.dev 2023-06-26 14:14:07 +01:00
Anders Pitman
4b1c765753
Merge pull request #99 from ntnj/master
README: Add tunwg entry
2023-06-21 09:57:33 -06:00
Nitin Jain
72e56d663b
README: Add tunwg entry
The tunnels are end to end encrypted so server doesn't have access to raw HTTP data. It runs wireguard in userspace based on Google's gvisor netstack. Servers don't store any persistent state and clients exchange wireguard public keys through a custom handshake protocol over HTTPS.
2023-06-16 17:37:09 +05:30
Ben Lee-Cohen
f1a46a2aee
Tailscale now has a public funnel
Tailscale now has a public funnel: https://tailscale.com/blog/tailscale-funnel-beta/
2023-05-16 11:49:44 -04:00
DigitallyRefined
679cea363a
Add docker-wireguard-tunnel
docker-wireguard-tunnel connects two or more Docker servers together sharing container ports between them via a WireGuard tunnel
2023-05-04 21:43:36 +01:00
Anders Pitman
a8722897c8
Update onionpipe 2023-05-03 10:51:04 -06:00
Anders Pitman
f619cecb49
Update README.md 2023-05-03 10:50:12 -06:00
Anders Pitman
a95f7f98b7
Merge pull request #77 from theborakompanioni/patch-1
Add ngtor
2023-05-03 10:48:36 -06:00
Anders Pitman
77ea89b786
Update frp entry 2023-05-02 15:11:44 -06:00
Anders Pitman
9418047c96
Merge pull request #56 from ktaf/master
Add kcptun and tinc
2023-05-02 15:05:58 -06:00
Anders Pitman
a12ff84223
Merge branch 'master' into master 2023-05-02 15:05:51 -06:00
Anders Pitman
da22185b02
Add localxpose 2023-05-02 14:44:13 -06:00
Anders Pitman
ac86cd48a8
Merge pull request #74 from ankitjaininfo/patch-1
Adding Beeceptor
2023-05-02 14:04:28 -06:00
Anders Pitman
ba36c80a90
Merge branch 'master' into patch-1 2023-05-02 14:04:08 -06:00
Anders Pitman
c214326d0a
jerson/pgrok is archived 2023-05-02 13:47:10 -06:00
Anders Pitman
66511fd23c
Reorder pgrok by stars 2023-05-02 13:46:13 -06:00
Anders Pitman
df1df04bf7
Merge pull request #86 from unknwon/patch-1
README: add pgrok/pgrok
2023-05-02 13:45:09 -06:00
Anders Pitman
91cfcd1b21
Merge branch 'master' into patch-1 2023-05-02 13:44:56 -06:00
Anders Pitman
6e7fc26e10
Merge pull request #89 from ghoshbishakh/master
Add pinggy.io
2023-05-02 13:40:05 -06:00
Bishakh Ghosh
5f6e551434 Add pinggy.io 2023-05-03 00:36:40 +05:30
Anders Pitman
b7908362e9 Merge remote-tracking branch 'cmars/cmars-patch-1' into merge 2023-04-30 09:31:01 -06:00
Anders Pitman
bb9e0c2932
Reorder 2023-04-27 21:55:59 -06:00
Anders Pitman
706bdedfa9
Merge pull request #87 from dovholuknf/master
reorder zrok based on popularity
2023-04-27 21:52:22 -06:00
dovholuknf
ab4f39a79c
Update README.md
reorder based on starcount popularity
2023-03-28 08:29:14 -04:00
Anders Pitman
2d6f10c7cd
Reorder overlay networks 2023-03-15 11:37:35 -06:00
Anders Pitman
9dad64945b
Merge pull request #80 from gongjason/patch-1
Add Firezone
2023-03-15 11:34:55 -06:00
Anders Pitman
18483572c9
Merge pull request #84 from Nezteb/master
Add innernet
2023-03-15 11:33:47 -06:00
Anders Pitman
62006a86f2
Merge pull request #85 from dweissengruber/master
Use correct pgrok project URL
2023-03-15 11:30:17 -06:00
Anders Pitman
679be61729
Merge pull request #83 from robbie-cahill/master
Add Tunnelmole
2023-03-15 11:29:00 -06:00
Joe Chen
e29caea3a4
README: add pgrok/pgrok 2023-03-14 12:48:15 +08:00
dweissengruber
48cdfcf0c2
Update README.md
Use correct pgrok project URL
2023-03-13 11:33:57 +01:00
Noah Betzen
17a507a87f
Update README.md 2023-03-08 10:21:28 -08:00
Noah Betzen
d4e76ecc0a
Update README.md 2023-03-08 10:20:07 -08:00
Anders Pitman
4f275cbc4d
Update zrok entry 2023-03-02 16:41:09 -07:00
Anders Pitman
90705bd225
Update README.md 2023-03-02 16:37:47 -07:00
Anders Pitman
0c044612b9
Merge pull request #82 from dovholuknf/master
add zrok to the awesome tunnel list
2023-03-02 16:30:47 -07:00
Robbie Cahill
52b302d234 Add Tunnelmole 2023-02-17 20:01:32 +11:00
dovholuknf
5dbd1a558e
add zrok to the awesome tunnel list 2023-02-13 14:11:58 -05:00
Anders Pitman
d8576c6e91
Merge pull request #79 from kofoednielsen/patch-1
Correct name of tunnel.pyjam.as
2023-02-01 16:36:08 -07:00
Jason G
dd4aba892e
Add Firezone
This adds [Firezone](https://github.com/firezone/firezone).
2022-11-23 09:55:38 -08:00
Asbjørn Kofoed-Nielsen
0dccabe113
Correct name of tunnel.pyjam.as
Hello! 

Thank you so much for adding our project https://tunnel.pyjam.as to your list!

This is just a small correction, but `pyjam.as` is the name of our organization, and the project name is `tunnel.pyjam.as`

I also added a link to our source code

Thank you again! :)
2022-11-02 01:05:20 +01:00
Anders Pitman
1d28f7f0d8
Merge pull request #71 from spekulatius/master
Typo: Comprehesive => Comprehensive
2022-10-25 23:15:48 -06:00
Thebora Kompanioni
cc0dc1fc72
Add ngtor
Easily expose local services via Tor:
- Tunnel traffic via Tor to your locally running service
- Serve static via Tor with a single command
- All-in-one binary for macos, linux and windows
2022-10-25 12:12:01 +02:00
Ankit Jain
410e4a0491
Adding Beeceptor
I used Beeceptor recently and find it to be a candidate for addition to this list. Beeceptor has local tunneling and, dynamic mocked response, simulating
2022-10-18 01:00:48 +05:30
Peter Thaleikis
1813a1c9eb
2nd typo 2022-10-11 10:47:48 +02:00
Peter Thaleikis
292688ab10
Typo: Comprehesive => Comprehensive 2022-10-11 10:46:28 +02:00
Anders Pitman
977ea96fb6
Update README.md 2022-09-27 09:29:09 -06:00
Anders Pitman
98f78f2b91
Update README.md 2022-09-27 09:28:50 -06:00
Anders Pitman
23ed96db85
Update README.md 2022-09-24 15:03:34 -06:00
Anders Pitman
0e7bd5fa11
Update README.md 2022-09-24 15:02:53 -06:00
Anders Pitman
118eaf60e6
Update README.md 2022-09-24 15:01:00 -06:00
Anders Pitman
bd5d7bd11e
Update README.md 2022-09-23 15:53:07 -06:00
Anders Pitman
36c0a0eaf8
Add pyjam.as 2022-09-23 15:35:30 -06:00
Anders Pitman
300808c767
Move non-GitHub projects to top of list
We're trying to encourage self-hosting and decentralization, after all.
2022-09-23 15:31:48 -06:00
Anders Pitman
c586a031f2
Update README.md 2022-09-23 15:20:06 -06:00
Anders Pitman
cbce4f8838
Merge pull request #24 from thebitbrine/patch-1
Added hypertunnel
2022-09-23 15:18:26 -06:00
Anders Pitman
391197c4f4
Merge branch 'master' into patch-1 2022-09-23 15:18:02 -06:00
Anders Pitman
48ff00f44b
Merge pull request #55 from feiszli/add-netmaker
Add Netmaker to the list
2022-09-23 15:12:29 -06:00
Anders Pitman
72ecf887cc
Update README.md 2022-09-23 15:12:12 -06:00
Anders Pitman
7ed3da6f1f
Merge branch 'master' into add-netmaker 2022-09-23 15:11:05 -06:00
Anders Pitman
9982440f06
Fix holepunch link 2022-09-23 15:05:25 -06:00
Anders Pitman
c60a2961de
Switch holepunch to github repo link 2022-09-23 15:03:43 -06:00
Anders Pitman
3bb1c2b7b7
Comment out holepunch.io. Appears to be down 2022-09-23 15:02:26 -06:00
Anders Pitman
46b76e44fc
Update README.md 2022-09-23 15:00:55 -06:00
Anders Pitman
519dfdb7d0
Update README.md 2022-09-23 14:59:58 -06:00
Anders Pitman
9bc26aa0fa
Merge pull request #66 from almereyda/netbird
add NetBird
2022-09-23 14:58:54 -06:00
Anders Pitman
d5a58192dd
Move Pritunl to advanced section 2022-09-23 14:55:05 -06:00
Anders Pitman
089ec503a9
Add recommendations section 2022-09-23 14:52:11 -06:00
Anders Pitman
28a74ddf46
Update README.md 2022-09-23 14:37:09 -06:00
Anders Pitman
3d0472264e
Update README.md 2022-09-23 14:25:01 -06:00
Anders Pitman
694abdd857
Update Headscale 2022-09-23 14:24:26 -06:00
Anders Pitman
70e8500475
Reorder 2022-09-23 14:20:30 -06:00
Anders Pitman
de37ff5e23
Merge pull request #67 from almereyda/headscale
add headscale
2022-09-23 14:15:33 -06:00
Anders Pitman
6b7fb71b14
Add bore 2022-09-23 14:09:52 -06:00
Anders Pitman
eee461693c
Add OpenZiti 2022-09-23 14:06:19 -06:00
jon r
d6dfbc736c
add NetBird 2022-09-21 05:20:37 +02:00
jon r
7dff72735d
add headscale 2022-09-21 05:16:43 +02:00
Kourosh Tafreshi
c3a7951594 Add kcptun and tinc 2022-04-12 13:16:21 +03:00
feiszli
c8ed7d31c9
Add Netmaker to README 2022-04-11 14:36:12 -04:00
Anders Pitman
710bf1e051
Merge pull request #45 from cu/master
Fix teleport github link
2022-03-04 15:25:48 -07:00
Charles Ulrich
01833efdc7
Fix teleport github link 2022-02-25 10:53:08 -05:00
Anders Pitman
17aad50fd0
A little reordering 2022-02-24 01:29:32 -07:00
Casey Marshall
95f1d0aa90
Add onionpipe
Fixes #42
2022-02-23 21:39:42 -06:00
Anders Pitman
988f009433
Update Cloudflare Tunnel
Client is now Apache 2.0 licensed.
2022-02-23 14:24:37 -07:00
Anders Pitman
0a9be49b4c
Replace teleconsole with Teleport
teleconsole has been shutdown (at least temporarily), but it appears Teleport supports the features relevant to this list.
2022-02-22 12:17:08 -07:00
Anders Pitman
54dd42dd9f
Improve Nebula and ZeroTier entries. 2022-02-10 11:16:05 -07:00
Anders Pitman
5e2e619989
Move rathole up 2022-02-10 11:12:34 -07:00
TheBitBrine
a822851424
Added hypertunnel 2021-10-22 05:15:12 +00:00

127
README.md
View file

@ -1,8 +1,127 @@
![](https://awesome-tunneling-github.goatcounter.com/count?p=/page2)
The purpose of this list is to track and compare tunneling solutions. This is
primarily targeted toward self-hosters and developers who want to do things
like exposing a local webserver via a public domain name, with automatic HTTPS,
even if behind a NAT or other restricted network.
![](https://takingnames.io/logo.svg)
**NOTE:** We're building a community around self-hosting, data ownership, and decentralization in general.
Join us over at [IndieBits.io](https://forum.indiebits.io).
![](https://takingnames.io/logo.png)
# The dream
![](https://awesome-tunneling-stats.apitman.com/count?p=/page3)
I started this list because I'm looking for 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 Lets's Encrypt, none of them integrate
the domain registration and DNS management.
**UPDATE 2022-09-23:**
A lot of new tools have been developed since the list started, and many tools have been submitted for addition to the list. It's great to see so much interest in tunneling. That said, I want to make sure this remains a useful resource for not just listing all the possible options, but helping people pick one that will solve their problem. With that goal in mind, I've moved some of the items to a separate section at the bottom. This is dedicated to more complicated tools like overlay networks which can support tunneling and similar use cases, but aren't focused exclusively on tunneling. Please let me know if you think something is in the wrong section.
# Recommendations
* For most people, I currently recommend [CloudFlare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/). 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 [frp](https://github.com/fatedier/frp) is probably what you want. If you're a developer, I'd recommend starting with my own [SirTunnel](https://github.com/anderspitman/SirTunnel) project and modifying it for your needs. For non-developers and those wanting more of a GUI experience, I created [boringproxy](https://boringproxy.io/). It's my take on a comprehensive tunnel proxy solution. It's in beta but currently solves almost everything I want. Once the server is running this is a very easy tool to use and has some nice features.
# Open source (at least with a reasonably permissive license)
* [Tunnelmole](https://github.com/robbie-cahill/tunnelmole-client/) - Open source and optionally self hostable. The client and server are both written in TypeScript.
* [Telebit](https://telebit.cloud/) - Written in JS. [Code](https://git.coolaj86.com/coolaj86/telebit.js).
* [tunnel.pyjam.as](https://tunnel.pyjam.as/) - No custom client; uses WireGuard directly instead. Written in Python. [source code](https://gitlab.com/pyjam.as/tunnel)
* [SSH-J.com](https://bitbucket.org/ValdikSS/dropbear-sshj/) - Public SSH Jump & Port Forwarding server. No software, no registration, just an anonymous SSH server for forwarding. Users are encouraged to use it for SSH exposure only, to preserve end-to-end encryption. No public ports, only in-SSH connectivity. Run `ssh ssh-j.com` and it will display usage information.
* [frp](https://github.com/fatedier/frp) [![frp github stars badge](https://img.shields.io/github/stars/fatedier/frp?style=flat)](https://github.com/fatedier/frp/stargazers) - Comprehensive open alternative to ngrok. Supports UDP, and has a P2P mode. Supports multiplexing over TCP (single connection or pool), QUIC, and KCP.
* [ngrok 1.0](https://github.com/inconshreveable/ngrok) [![ngrok 1.0 github stars badge](https://img.shields.io/github/stars/inconshreveable/ngrok?style=flat)](https://github.com/inconshreveable/ngrok/stargazers) - Original version of ngrok. No longer developed in favor of the commercial 2.0 version.
* [localtunnel](https://github.com/localtunnel) [![localtunnel github stars badge](https://img.shields.io/github/stars/localtunnel/localtunnel?style=flat)](https://github.com/localtunnel/localtunnel/stargazers) - Written in node. Popular suggestion.
* [sshuttle](https://github.com/sshuttle/sshuttle) [![sshuttle github stars badge](https://img.shields.io/github/stars/sshuttle/sshuttle?style=flat)](https://github.com/sshuttle/sshuttle/stargazers) - Open source project originally from one of the founders of Tailscale. Server doesn't require root; client does. Explicitly designed to avoid TCP-over-TCP issues.
* [chisel](https://github.com/jpillora/chisel) [![chisel github stars badge](https://img.shields.io/github/stars/jpillora/chisel?style=flat)](https://github.com/jpillora/chisel/stargazers) - SSH under the hood, but still uses a custom client binary. Supports auto certs from LetsEncrypt. Written in Go.
* [bore](https://github.com/ekzhang/bore) [![bore github stars badge](https://img.shields.io/github/stars/ekzhang/bore?style=flat)](https://github.com/ekzhang/bore/stargazers) - Minimal tunneling solution. MIT Licensed. Written in Rust.
* [rathole](https://github.com/rapiz1/rathole) [![rathole github stars badge](https://img.shields.io/github/stars/rapiz1/rathole?style=flat)](https://github.com/rapiz1/rathole/stargazers) - Similar to frp, including the config format, but with improved performance. Low resource consumption. Hot reload. Written in Rust.
* [expose](https://github.com/beyondcode/expose) [![expose github stars badge](https://img.shields.io/github/stars/beyondcode/expose?style=flat)](https://github.com/beyondcode/expose/stargazers) - ngrok alternative written in PHP.
* [sish](https://github.com/antoniomika/sish) [![sish github stars badge](https://img.shields.io/github/stars/antoniomika/sish?style=flat)](https://github.com/antoniomika/sish/stargazers) - Open source ngrok/serveo alternative. SSH-based but uses a custom server written in Go. Supports WebSocket tunneling.
* [go-http-tunnel](https://github.com/mmatczuk/go-http-tunnel) [![go-http-tunnel github stars badge](https://img.shields.io/github/stars/mmatczuk/go-http-tunnel?style=flat)](https://github.com/mmatczuk/go-http-tunnel/stargazers) - Uses a single HTTP/2 connection for muxing. Need to manually generate certs for server and clients.
* [pgrok/pgrok](https://github.com/pgrok/pgrok) [![pgrok github stars badge](https://img.shields.io/github/stars/pgrok/pgrok?style=flat)](https://github.com/pgrok/pgrok/stargazers) - A multi-tenant HTTP reverse tunnel solution through SSH remote port forwarding.
* [tunnelto](https://tunnelto.dev/) [![tunnelto github stars badge](https://img.shields.io/github/stars/agrinman/tunnelto?style=flat)](https://github.com/agrinman/tunnelto/stargazers) - Open source (MIT). Written in Rust.
* [wstunnel](https://github.com/erebe/wstunnel) [![wstunnel github stars badge](https://img.shields.io/github/stars/erebe/wstunnel?style=flat)](https://github.com/erebe/wstunnel/stargazers) - Proxies over WebSockets. Focus on proxying from behind networks that block certain protocols. Written in Haskell with executables provided.
* [zrok](https://zrok.io/) [![zrok github stars badge](https://img.shields.io/github/stars/openziti/zrok?style=flat)](https://github.com/openziti/zrok/stargazers) - Aims for effortless sharing both publicly and privately. Supports multiple types of resources, including HTTP endpoints and files. Built on OpenZiti (see overlay section below). Apache 2 License. Written in Go.
* [boringproxy](https://boringproxy.io/) [![boringproxy github stars badge](https://img.shields.io/github/stars/boringproxy/boringproxy?style=flat)](https://github.com/boringproxy/boringproxy/stargazers) - Designed to be very easy to use. No config files. Clients can be remote-controlled through a simple WebUI and/or REST API on the server.
* [SirTunnel](https://github.com/anderspitman/SirTunnel) [![SirTunnel github stars badge](https://img.shields.io/github/stars/anderspitman/SirTunnel?style=flat)](https://github.com/anderspitman/SirTunnel/stargazers) - Minimal, self-hosted, 0-config alternative to ngrok. Similar to sish but leverages Caddy+OpenSSH rather than custom server code.
* [jprq](https://github.com/azimjohn/jprq) [![jprq github stars badge](https://img.shields.io/github/stars/azimjohn/jprq?style=flat)](https://github.com/azimjohn/jprq/stargazers) - Proxies over WebSockets. Written in Python.
* [PageKite](https://pagekite.net/) [![pagekite github stars badge](https://img.shields.io/github/stars/pagekite/PyPagekite?style=flat)](https://github.com/pagekite/PyPagekite/stargazers) - Comprehensive open source solution with hosted options.
* [Wiretap](https://github.com/sandialabs/wiretap) [![wiretap github stars badge](https://img.shields.io/github/stars/sandialabs/wiretap?style=flat)](https://github.com/sandialabs/wiretap/stargazers) - Transparent tunneling over WireGuard (UDP) using userspace network stack. Root not required on server. Supports multiple clients and servers. Written in Go.
* [Crowbar](https://github.com/q3k/crowbar) [![crowbar github stars badge](https://img.shields.io/github/stars/q3k/crowbar?style=flat)](https://github.com/q3k/crowbar/stargazers) - Tunnels TCP connections over HTTP GET and POST requests.
* [tunneller](https://github.com/skx/tunneller) [![tunneller github stars badge](https://img.shields.io/github/stars/skx/tunneller?style=flat)](https://github.com/skx/tunneller/stargazers) - Open source. Written in Go.
* [onionpipe](https://github.com/cmars/onionpipe) [![onionpipe github stars badge](https://img.shields.io/github/stars/cmars/onionpipe?style=flat)](https://github.com/cmars/onionpipe/stargazers) - Onion addresses for anything. `onionpipe` forwards ports on the local host to remote Onion addresses as Tor hidden services and vice-versa. Written in Go.
* [tunnel](https://github.com/koding/tunnel) [![tunnel github stars badge](https://img.shields.io/github/stars/koding/tunnel?style=flat)](https://github.com/koding/tunnel/stargazers) - This one is a Golang library, not a program you can just run. However, it looks easy to use for creating custom solutions. Uses a single TCP socket, and [yamux](https://github.com/hashicorp/yamux) for multiplexing.
* [jerson/pgrok](https://www.proxy.jetzt/) [![pgrok github stars badge](https://img.shields.io/github/stars/jerson/pgrok?style=flat)](https://github.com/jerson/pgrok/stargazers) - Fork of ngrok 1.0, with more recent commits. Archived.
* [docker-tunnel](https://github.com/vitobotta/docker-tunnel) [![docker-tunnel github stars badge](https://img.shields.io/github/stars/vitobotta/docker-tunnel?style=flat)](https://github.com/vitobotta/docker-tunnel/stargazers) - Simple Docker-based nginx+SSH solution.
* [remotemoe](https://github.com/fasmide/remotemoe) [![remotemoe github stars badge](https://img.shields.io/github/stars/fasmide/remotemoe?style=flat)](https://github.com/fasmide/remotemoe/stargazers) - SSH-based, with custom golang server. Does some cool unique things. Instead of just plain tunnels, it drops you into a basic CLI UI that offers several useful commands interactively, such as adding a custom hostname. Also allows end-to-end encryption for both HTTPS and upstream SSH. Doesn't appear to offer non-e2e HTTPS, ie no auto Let's Encrypt support.
* [hypertunnel](https://github.com/berstend/hypertunnel) [![frp github stars badge](https://img.shields.io/github/stars/berstend/hypertunnel?style=flat)](https://github.com//berstend/hypertunnel/stargazers) - Public server appears to be down. MIT Licensed. Written in JavaScript.
* [tunwg](https://github.com/ntnj/tunwg) [![tunwg github stars badge](https://img.shields.io/github/stars/ntnj/tunwg?style=flat)](https://github.com/ntnj/tunwg/stargazers) - Wireguard in userspace based. Offers end to end encrypted TLS with LetsEncrypt certificates generated automatically by clients, with support for custom domains. Server can be self-hosted and doesn't require storing any data.
* [gt](https://github.com/ao-space/gt)[![gt github stars badge](https://img.shields.io/github/stars/ao-space/gt?style=flat)](https://github.com/ao-space/gt/stargazers) - Supports peer-to-peer direct connection (P2P) and Internet relay. Focus on performance. Written in Go.
* [holepunch](https://github.com/CypherpunkArmory/holepunch) [![holepunch github stars badge](https://img.shields.io/github/stars/CypherpunkArmory/holepunch?style=flat)](https://github.com/CypherpunkArmory/holepunch/stargazers) - Has nice hosted solution. Uses SSH for muxing.
* [StaqLab Tunnel](https://tunnel.staqlab.com/) [![staqlab github stars badge](https://img.shields.io/github/stars/abhishekq61/tunnel-client?style=flat)](https://github.com/abhishekq61/tunnel-client/stargazers) - SSH-based. Client is open source. Server doesn't appear to be.
* [tnnlink](https://github.com/LiljebergXYZ/tnnlink) [![tnnlink github stars badge](https://img.shields.io/github/stars/LiljebergXYZ/tnnlink?style=flat)](https://github.com/LiljebergXYZ/tnnlink/stargazers) - SSH-based. Golang. Not maintained.
* [docker-wireguard-tunnel](https://github.com/DigitallyRefined/docker-wireguard-tunnel) [![ngtor github stars badge](https://img.shields.io/github/stars/DigitallyRefined/docker-wireguard-tunnel?style=flat)](https://github.com/DigitallyRefined/docker-wireguard-tunnel/stargazers) - Connect two or more Docker servers together sharing container ports between them via a WireGuard tunnel.
* [ngtor](https://github.com/theborakompanioni/ngtor) [![ngtor github stars badge](https://img.shields.io/github/stars/theborakompanioni/ngtor?style=flat)](https://github.com/theborakompanioni/ngtor/stargazers) - Easily expose local services via Tor. Written in Java.
* [Punchmole](https://github.com/Degola/punchmole/) [![punchmole github stars badge](https://img.shields.io/github/stars/Degola/punchmole?style=flat)](https://github.com/Degola/punchmole/stargazers) - Can be integrated directly into an existing Node.js project. Written in JavaScript.
# Commercial/Closed source
* [ngrok 2.0](https://ngrok.com/) - 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](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup) - Excellent free option. Nicely integrates tunneling with the rest of Cloudflare's products, which include DNS and auto HTTPS. Client [source code](https://github.com/cloudflare/cloudflared) is Apache 2.0 licensed and written in Golang.
* [Beeceptor](https://beeceptor.com/) - Goes beyond tunneling. Rest API mocking and intercepting tool. You can view the live requests and send mocked response. Written in JavaScript.
* [Pinggy](https://pinggy.io/) - SSH based single command HTTPS / TCP / TLS tunnels, no downloads required. Rich terminal interface and a web debugger. Free tier - 60 min timeout. Paid tier allows custom domains with built-in Let's Encrypt certificates.
* [Loophole](https://loophole.cloud/) - Offers end-to-end TLS encryption with the client automatically getting certs from Let's Encrypt. QR codes for URL sharing. Client is open source. Can serve a local directory over WebDAV. MIT License. Written in Go.
* [localhost.run](https://localhost.run/) - Simple hosted SSH option. Supports custom domains for a cost.
* [Packetriot](https://packetriot.com) - 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.
* [Hoppy](https://hoppy.network/) - 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](https://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](https://sshreach.me/) - Paid SSH-based option. Uses a simple python script.
* [KubeSail](https://kubesail.com/) - Company offering tunneling, dynamic DNS, and other services for self-hosting with Kubernetes.
* [inlets](https://inlets.dev/) - Used to be [open source](https://github.com/inlets/inlets-archived); now focused on a polished commercial offering. Designed to work well with Kubernetes.
* [LocalToNet](https://localtonet.com/) - Supports UDP. Free for a single tunnel. Paid supports custom domains.
* [LocalXpose](https://localxpose.io) - Looks like a solid paid option, with a limited free tier.
* [Tabserve.dev](https://tabserve.dev) - Web UI that runs entirely in the browser and uses a Cloudflare Worker for https.
* [Serveo](https://serveo.net) - SSH-based, signup optional, offering HTTP(S) and TCP tunneling and SSH jump host forwarding capabilities.
# Overlay networks and other advanced tools
* [headscale](https://github.com/juanfont/headscale) [![headscale github stars badge](https://img.shields.io/github/stars/juanfont/headscale?style=flat)](https://github.com/juanfont/headscale/stargazers) - Open source implementation of Tailscale control server. Can be used with Tailscale's official open source client. Written in Go.
* [Tailscale](https://www.tailscale.com/) [![tailscale github stars badge](https://img.shields.io/github/stars/tailscale/tailscale?style=flat)](https://github.com/tailscale/tailscale/stargazers) - Built on WireGuard. Easy to use. Control server is closed source. Client [code](https://github.com/tailscale) available with a BSD3 license + separate patents file.
* [Teleport](https://goteleport.com/) [![teleport github stars badge](https://img.shields.io/github/stars/gravitational/teleport?style=flat)](https://github.com/gravitational/teleport) - Comprehensive control plane tool, but also supports [accessing apps](https://goteleport.com/docs/application-access/introduction/) behind NATs. Written in Go.
* [Nebula](https://github.com/slackhq/nebula) - [![nebula github stars badge](https://img.shields.io/github/stars/slackhq/nebula?style=flat)](https://github.com/zerotier/slackhq/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](https://www.zerotier.com/) - [![zerotier github stars badge](https://img.shields.io/github/stars/zerotier/ZeroTierOne?style=flat)](https://github.com/zerotier/ZeroTierOne/stargazers) 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](https://github.com/gravitl/netmaker) [![netmaker github stars badge](https://img.shields.io/github/stars/gravitl/netmaker?style=flat)](https://github.com/gravitl/netmaker/stargazers) - 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. Not FOSS, but source is available. Written in Go.
* [NetBird](https://github.com/netbirdio/netbird) [![netbird github stars badge](https://img.shields.io/github/stars/netbirdio/netbird?style=flat)](https://github.com/netbirdio/netbird/stargazers) - 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](https://www.firezone.dev/) [![firezone github stars badge](https://img.shields.io/github/stars/firezone/firezone?style=flat)](https://github.com/firezone/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.
* [innernet](https://github.com/tonarino/innernet) [![innernet github stars badge](https://img.shields.io/github/stars/tonarino/innernet?style=flat)](https://github.com/tonarino/innernet/stargazers) - 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.
* [Pritunl](https://pritunl.com/) [![pritunl github stars badge](https://img.shields.io/github/stars/pritunl/pritunl?style=flat)](https://github.com/pritunl/pritunl/stargazers) - Seems quite comprehensive and complicated. OpenVPN, WireGuard, and IPSec support.
* [Tinc](https://github.com/gsliepen/tinc) [![tinc github stars badge](https://img.shields.io/github/stars/gsliepen/tinc?style=flat)](https://github.com/gsliepen/tinc/stargazers) - 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](https://openziti.github.io) - [![OpenZiti github stars badge](https://img.shields.io/github/stars/openziti/ziti?style=flat)](https://github.com/openziti/ziti/stargazers) - 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.
* [Ngrok-operator](https://github.com/zufardhiyaulhaq/ngrok-operator) [![ngrok operator github stars badge](https://img.shields.io/github/stars/zufardhiyaulhaq/ngrok-operator?style=flat)](https://github.com/zufardhiyaulhaq/ngrok-operator/stargazers) - Ngrok but integrated with Kubernetes, allows developers on private kubernetes to easily access their services via Ngrok.
* [chisel-operator](https://github.com/FyraLabs/chisel-operator/) [![chisel operator github stars badge](https://img.shields.io/github/stars/FyraLabs/chisel-operator?style=flat)](https://github.com/FyraLabs/chisel-operator/stargazers) - Kubernetes integration for Chisel. Similar functionality to inlets. MIT License. Written in Rust.
# Reference
* [Roll your own Ngrok with Nginx, Letsencrypt, and SSH reverse tunnelling](https://jerrington.me/posts/2019-01-29-self-hosted-ngrok.html)
* [Poor man's ngrok with tcp proxy and ssh reverse tunnel](https://dev.to/k4ml/poor-man-ngrok-with-tcp-proxy-and-ssh-reverse-tunnel-1fm)
* [How I built Ngrok Alternative (jprq)](https://dev.to/azimjohn/how-i-built-ngrok-alternative-3n0g)
* [Great SO answer by AJ ONeal about how these things work](https://stackoverflow.com/a/52614266/943814)
* [Talk by AJ ONeal about tunneling tech](https://youtu.be/E1Q2MWGCADo)
* [ngrok alternative: localtunnel + Caddy + Lets Encrypt](https://morph027.gitlab.io/blog/localtunnel-ngrok/)
# Discussions
* [HN comment about needing Namecheap + CloudFlare + ngrok](https://news.ycombinator.com/item?id=24475946).