https://github.com/shellfly/boring
https://github.com/shellfly/boring
socks tcp tunneling
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/shellfly/boring
- Owner: shellfly
- License: mit
- Created: 2021-12-11T10:54:34.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-11T14:10:57.000Z (over 3 years ago)
- Last Synced: 2025-01-12T10:27:11.755Z (6 months ago)
- Topics: socks, tcp, tunneling
- Language: Go
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Boring
> "What I cannot create, I do not understand."
>
> -- Richard FeynmanA toy project to help myself understand [socks5 protocol](https://en.wikipedia.org/wiki/SOCKS) and [TCP tunneling](https://en.wikipedia.org/wiki/Tunneling_protocol). The name is inspired by [The Boring Company](https://www.boringcompany.com/)
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`
## Usage
### Build
``` bash
make
```### Run server
A tcp server handling encryption connection
``` bash
# running on Linux
./server-linux -method aes -key {key}
```### Run client
A socks5 server handling incoming proxy request, encryption data and send to server.
``` bash
# running on Mac
./client-darwin -method aes -key {key}
```