All Projects → agrinman → Tunnelto

agrinman / Tunnelto

Licence: mit
Expose your local web server to the internet with a public URL.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Tunnelto

Ngrok
Expose your localhost to the web. Node wrapper for ngrok.
Stars: ✭ 1,897 (+66.7%)
Mutual labels:  tunnel, localhost
Docker Host
A docker sidecar container to forward all traffic to local docker host or any other host
Stars: ✭ 769 (-32.43%)
Mutual labels:  tunnel, localhost
Pyngrok
A Python wrapper for ngrok
Stars: ✭ 159 (-86.03%)
Mutual labels:  tunnel, localhost
Awslambdaproxy
An AWS Lambda powered HTTP/SOCKS web proxy
Stars: ✭ 571 (-49.82%)
Mutual labels:  tunnel
Spike
📣 A fast reverse proxy written in PHP that helps to expose local services to the internet
Stars: ✭ 582 (-48.86%)
Mutual labels:  tunnel
Titun
Simple, fast, and cross-platform IP tunnel written in Rust. WireGuard compatible.
Stars: ✭ 19 (-98.33%)
Mutual labels:  tunnel
Mr2
Mr.2 can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Zero-Configuration.
Stars: ✭ 1,102 (-3.16%)
Mutual labels:  tunnel
Sigmavpn
Light-weight, secure and modular VPN solution which makes use of NaCl encryption (also available for Android using jnacl in "sigmavpn-android")
Stars: ✭ 531 (-53.34%)
Mutual labels:  tunnel
Subnet
Simple, auditable & elegant VPN, built with TLS mutual authentication and TUN.
Stars: ✭ 1,040 (-8.61%)
Mutual labels:  tunnel
Sshtunnel
SSH tunnels to remote server.
Stars: ✭ 797 (-29.96%)
Mutual labels:  tunnel
Shootback
a reverse TCP tunnel let you access target behind NAT or firewall
Stars: ✭ 799 (-29.79%)
Mutual labels:  tunnel
Chisel
A fast TCP/UDP tunnel over HTTP
Stars: ✭ 6,557 (+476.19%)
Mutual labels:  tunnel
Mkcert
A simple zero-config tool to make locally trusted development certificates with any names you'd like.
Stars: ✭ 33,022 (+2801.76%)
Mutual labels:  localhost
Awesome Network Stuff
Resources about network security, including: Proxy/GFW/ReverseProxy/Tunnel/VPN/Tor/I2P, and MiTM/PortKnocking/NetworkSniff/NetworkAnalysis/etc。More than 1700 open source tools for now. Post incoming.
Stars: ✭ 578 (-49.21%)
Mutual labels:  tunnel
V2ray Core
A platform for building proxies to bypass network restrictions.
Stars: ✭ 13,438 (+1080.84%)
Mutual labels:  tunnel
Wechat Weapp Game Tnfb
一款基于腾讯云wafer2方案的实时在线答题微信小程序,类似头脑王者
Stars: ✭ 552 (-51.49%)
Mutual labels:  tunnel
Putty Tunnel Manager
Fixes and new release. PuTTY Tunnel Manager allows you to easily open tunnels, that are defined in a PuTTY session, from the system tray. You can also move the tunnels from PuTTY to PuTTY Tunnel Manager. This allows you to use PuTTY just for SSH shell sessions (without opening tunnels), and use PuTTY Tunnel Manager just for tunneling.
Stars: ✭ 41 (-96.4%)
Mutual labels:  tunnel
Inlets Operator
Add public LoadBalancers to your local Kubernetes clusters
Stars: ✭ 795 (-30.14%)
Mutual labels:  tunnel
Nexer
Content based network multiplexer or redirector made with love and Go
Stars: ✭ 7 (-99.38%)
Mutual labels:  tunnel
Simple Vpn Demo
A Simple Point-to-Point tunnelling implementation in C
Stars: ✭ 59 (-94.82%)
Mutual labels:  tunnel

BuildRelease crate GitHub Docker Registry crate

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.

  1. Install
  2. Usage Instructions
  3. Host it yourself

Install

Brew (macOS)

brew install agrinman/tap/tunnelto

Cargo

cargo install tunnelto

Or Download a release for your target OS here: tunnelto/releases

Usage

Quick Start

tunnelto --port 8000

The above command opens a tunnel and forwards traffic to localhost:8000.

More Options:

⇢ 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 <key>                 Sets an API authentication key to use for this tunnel
    -p, --port <port>               Sets the port to forward incoming tunnel traffic to on localhost [default: 8000]
    -s, --subdomain <sub-domain>    Specify a sub-domain for this tunnel

SUBCOMMANDS:
    help        Prints this message or the help of the given subcommand(s)
    set-auth    Store the API Authentication key

Host it yourself

  1. Compile the server for the musl target. See the musl_build.sh for a way to do this trivially with Docker!
  2. See Dockerfile for a simple alpine based image that runs that server binary.
  3. Deploy the image where ever you want.

Testing Locally

# Run the Server: xpects TCP traffic on 8080 and control websockets on 5000
ALLOWED_HOSTS="localhost" ALLOW_UNKNOWN_CLIENTS=1 cargo run --bin tunnelto_server

# Run a local tunnelto client talking to your local tunnelto_server
CTRL_HOST="localhost" CTRL_PORT=5000 CTRL_TLS_OFF=1 cargo run --bin tunnelto -- start -p 8000

# Test it out!
# Remember 8080 is our local tunnelto TCP server
curl -H '<subdomain>.localhost' "http://localhost:8080/some_path?with=somequery"

Server Env Vars

  • ALLOWED_HOSTS: which hostname suffixes do we allow forwarding on
  • SECRET_KEY: an authentication key for restricting access to your tunnelto server
  • ALLOW_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.
  • CTRL_PORT: which control port to listen to (defaults to 5000)

Caveats

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].