Encapsulate TCP connections inside HTTP WebSockets
base | ||
tcp_relay_client | ||
tcp_relay_server | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.MD | ||
renovate.json |
TCP over HTTP
This project aims to provide an easy-to-setup TCP forwarding solution:
|--------| |--------| |--------| | -------|
| | | Client | | Server | | |
| Client | -- TCP xx -- | | -- HTTP 80 / 443 -- | | -- TCP xx -- | Server |
| | | Relay | | Relay | | |
|--------| |--------| |--------| |--------|
This project can be used especially to bypass firewalls that blocks traffics from ports others than the HTTP / HTTPS ports.
Authentication
The client can authenticate agains the server relays through two different means:
- Using a token
- Using a client TLS certificate. In this case, the server relay must act as a HTTPS server, and you must provide the server the required certificates / key files in PEM format. It is also possible to provide the server a CRL file.
Binaries
This repository contains two binaries:
tpc_relay_server
: The server relay. In case of token authentication, it can be put behind a reverse proxy.tcp_relay_client
: The client relay
A single server - client relay pair can relay multiple ports simultaneously from the same machine.