# 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.