"What I cannot create, I do not understand."
-- Richard Feynman
A toy project to help myself understand socks5 protocol and TCP tunneling. The name is inspired by The Boring Company
Both Client and Server are working as a TCP proxy. The Client implements socks5 protocol to accept socks5 incoming proxy request and then send the request to Server, the Server access target host and copy data back to client. The communication between Client and Server is encrypted by specified method and key.
Application
<- socks5 -> Client
<= encrypted data => Server
<- tcp -> Internet
make
A tcp server handling encryption connection
# running on Linux
./server-linux -method aes -key {key}
A socks5 server handling incoming proxy request, encryption data and send to server.
# running on Mac
./client-darwin -method aes -key {key}