TOW - TCP (and UDP) over WebSockets
tow is a tiny tunnel/proxy that sends TCP and UDP connections over WebSocket to bypass deep
protocol inspection restrictions in networks with allowed HTTPS.
To install tow, use
Usage
On the server, start a proxy with tow server. It takes two arguments:
<FROM>- The address to listen for incoming WebSocket connections at.<TO>- The address to forward the incoming WebSocket connections as TCP/UDP to.
For example,
On the client, use tow client instead. It takes two arguments:
<FROM>- The address to listen for incoming TCP/UDP connections at.<TO>- The address or URL to forward the incoming TCP/UDP connections as WebSockets to.
For example,
About Connections
UDP does not have connections like TCP does, yet the websockets used to tunnel the data does. To
emulate connections, tow queries the system's sock_diag to check when a UDP address stops being
in use or its inode changes. When either of those does, the connection is closed.
Connections get a stable IP:PORT pair to the server, though they're not the original IP due to tunnelling.
License
This project is available under the MIT license.