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
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.
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.
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)