wormhole
lets you expose your locally running web server via a public URL.
Written in Rust. Built completely with async-io on top of tokio.
```shell script
wormhole auth --key
wormhole start -p 8000 ```
The wormhole server both the operates control server (via port 5000, using websockets) and accepts raw TCP streams (via port 8080).
client-tunnel
. client-tunnel
client-tunnel
, the control server writes those bytes into the TCP stream.The wormhole client establishes a websocket connections to the wormhole server to establish the remote-tunnel
,
and then:
remote-tunnel
remote-tunnel
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.
musl_build.sh
for a way to do this trivially with Docker!Dockerfile
for a simple alpine based image that runs that server binary.ALLOWED_HOSTS
and SECRET_KEY
(see below how they're used).```shell script
ALLOWEDHOSTS="mytunnelhost.com" SECRETKEY="SECRETKEY" cargo run --bin wormholeserver
WEBSOCKETHOST=localhost:5000 TLSOFF=1 cargo run --bin wormhole -- -s "
curl -H '