diff --git a/README.MD b/README.MD index 3f5cd48..739ce70 100644 --- a/README.MD +++ b/README.MD @@ -10,20 +10,24 @@ This project aims to provide an easy-to-setup TCP forwarding solution: ``` This project can be used especially to bypass firewalls that blocks traffics -from ports others than the HTTP / HTTPS ports. +from ports others than the HTTP / HTTPS ports. The TCP traffic is encapsulated inside an +HTTP WebSocket between the client and the server relays. ## Authentication -The client can authenticate agains the server relays through two different means: +The client can authenticate against the server relays through two different means: -* Using a token +* Using a token (the server relay can have several tokens at the same time) * 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: +## Binary +This repository contains a single binary which can be used as a server or a client, depending of command line arguments: -* `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 +* Server mode: Act as a server relay. In case of token authentication (NOT TLS authentication), it can be put behind a reverse proxy. +* Client mode: Act as a client relay. It basically does three things: + * Fetch the list of forwared ports configuration from the server + * Listen to these port locally + * When a connection occurs on one of these ports, it forward the data exchanged by the socket to and from the server. A single server - client relay pair can relay multiple ports simultaneously from the same machine.