wormhole

package module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2019 License: Apache-2.0 Imports: 27 Imported by: 0

README

Fly.io Community Slack Build Status

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StartLocal

func StartLocal(cfg *config.ClientConfig)

StartLocal ...

func StartRemote

func StartRemote(cfg *config.ServerConfig)

StartRemote ...

Types

type Process

type Process struct {
	// contains filtered or unexported fields
}

Process is a wrapper around external program It handles execution and shutdown of a program and can notify an optional io.Closer when a program is terminated.

func NewProcess

func NewProcess(logger *logrus.Logger, program string, closer io.Closer) *Process

NewProcess returns the Process to execute a named program

func (*Process) Run

func (p *Process) Run() (err error)

Run starts the specified command and returns without waiting for the program to complete. It sets up a os.Signal listener and passes SIGNINT and SIGTERM to the running program. It also closer the Closer if present.

Directories

Path Synopsis
cmd
Package net is based on [go-conntrack](https://github.com/mwitkow/go-conntrack) Package net is based on [go-conntrack](https://github.com/mwitkow/go-conntrack)
Package net is based on [go-conntrack](https://github.com/mwitkow/go-conntrack) Package net is based on [go-conntrack](https://github.com/mwitkow/go-conntrack)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL