tunnelto
tunnelto
lets you expose your locally running web server via a public URL.
Written in Rust. Built completely with async-io on top of tokio.
bash
brew install agrinman/tap/tunnelto
bash
cargo install tunnelto
Or Download a release for your target OS here: tunnelto/releases
shell script
tunnelto --port 8000
The above command opens a tunnelto and starts tunneling traffic to localhost:8000
.
```shell script ⇢ tunnelto --help tunnelto 0.1.6 Expose your local web server to the internet with a public url.
USAGE: tunnelto [FLAGS] [OPTIONS] [SUBCOMMAND]
FLAGS: -h, --help Prints help information -V, --version Prints version information -v, --verbose A level of verbosity, and can be used multiple times
OPTIONS:
-k, --key
SUBCOMMANDS: help Prints this message or the help of the given subcommand(s) set-auth Store the API Authentication key
```
musl_build.sh
for a way to do this trivially with Docker!Dockerfile
for a simple alpine based image that runs that server binary.```shell script
ALLOWEDHOSTS="localhost" ALLOWUNKNOWNCLIENTS=1 cargo run --bin tunneltoserver
WORMHOLEHOST="localhost" WORMHOLEPORT=5000 TLS_OFF=1 cargo run --bin tunnelto -- start -p 8000
curl -H '
ALLOWED_HOSTS
: which hostname suffixes do we allow forwarding onSECRET_KEY
: an authentication key for restricting access to your tunnelto serverALLOW_UNKNOWN_CLIENTS
: a boolean flag, if set, enables unknown (no authentication) clients to use your tunnelto server. Note that unknown clients are not allowed to chose a subdomain via -s
.This implementation does not support multiple running servers (i.e. centralized coordination). Therefore, if you deploy multiple instances of the server, it will only work if the client connects to the same instance as the remote TCP stream.