30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
# 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.
|