wormhole - Fly.io reverse Proxy
What is wormhole?
Wormhole is a reverse proxy that creates a secure tunnel between two endpoints.
Compiling
Wormhole requires Go1.8+
go get github.com/superfly/wormhole
cd $GOPATH/src/github.com/superfly/wormhole
make setup
make binaries
Running locally
brew install redis
# make sure redis-server is running
# Start server
./scripts/wormhole-server.sh
# Start clients (defaults to 1)
./scripts/wormhole-local.sh <NUM_CLIENTS>
# The tunnel will be accessible on a randomly chosen port (look at wormhole-server logs):
# [Feb 20 20:43:50] INFO SSHHandler: Started session 29ff7b66abcc9871cdf1bc551f6e89728202f3e24e48675ecd9b8556a5dbd60b for Mats-MBP.local ([::1]:63169). Listening on: localhost:63170
Feature Status
Feature | Status |
---|---|
SSH Tunnel | Supported |
TCP Tunnel | Experimental - currently lacking some auth |
TLS Tunnel | Experimental - currently lacking some auth |
HTTP2 Tunnel | Experimental - currently lacking some auth |
Local Endpoint over TCP | Supported |
Local Endpoint over TLS | Supported |
Single Tunnel Type per WH Server | Supported |
Multiple Tunnel Types per WH Server | Pending #10 |
Healthcheck for Local Endpoint | Pending #33 |
WH Server Shared Port TLS+SNI forwarding | Supported |