4 releases

0.1.3 May 13, 2021
0.1.2 May 13, 2021
0.1.1 May 13, 2021
0.1.0 May 13, 2021

#25 in #tls-connection

MIT license

7KB
63 lines

tls-tunnel

Rust TLS over TCP tunnel

Crates.io docs.rs MIT licensed

This simple crate establishes a TLS connection to a specified target and creates a TCP server that allows you to tunnel TCP to the target over a standard TLS connection.

This is useful for environments where TLS connections are not feasible at runtime. Some examples:

  • Using a CONNECT proxy from a language that doesn't support CONNECT-over-TLS.
  • Legacy runtimes which do not support HTTPS but do support HTTP.
  • Interoperability of legacy VoIP, IRC or FTP clients which do not support TLS with servers which do.

Install

Simply download and compile the Rust binary using cargo install:

$ cargo install tls-tunnel

Run

Pass the target host and port as an argument when running using cargo or the compiled binary. If not provided, the tunnel will default to httpbin.org:443 for demo purposes.

$ tls-tunnel https://httpbin.org

The server will automatically choose a port to listen on. It defaults to port 1025 and will increment by one until it finds an available port to bind to.

Dependencies

~12–23MB
~434K SLoC