https://github.com/daskol/socks-proxy
Simple SOCKS4 proxy in modern C++
https://github.com/daskol/socks-proxy
boost proxy proxy-server rkn roskomnadzor socks socks-protocol socks-proxy socks4-proxy socks4-server telegram-proxy
Last synced: about 2 months ago
JSON representation
Simple SOCKS4 proxy in modern C++
- Host: GitHub
- URL: https://github.com/daskol/socks-proxy
- Owner: daskol
- License: mit
- Created: 2018-04-13T10:12:45.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-07T21:32:32.000Z (over 6 years ago)
- Last Synced: 2025-01-12T21:29:26.893Z (3 months ago)
- Topics: boost, proxy, proxy-server, rkn, roskomnadzor, socks, socks-protocol, socks-proxy, socks4-proxy, socks4-server, telegram-proxy
- Language: C++
- Homepage:
- Size: 25.4 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SOCKS4 Proxy Server
*simple socks4-proxy in modern c++*
## Overview
**SOCKS proxy** is simple proxy server which implements well-known
[SOCKS4](https://www.openssh.com/txt/socks4.protocol) protocol. It accept and
multiplexes input and output streams in one thread. It supports half-closed TCP
connections. Also default timeout on connection is one second.```
Client Proxy Server
| | |
| 1. Connect -> | |
| | |
| 1. Hello --> | |
| | |
| | 1. Connect -> |
| <-- 1. Hello | |
| | |
| | |
| 2. Data -> | |
| | 2. Data -> |
| | |
| | |
| 2. Fin -> | |
| | 2. Fin -> |
| | |
| | <- 2. Data |
| <- 2. Data | |
| | |
| | <- 2. Fin |
| <- 2. Fin | |```
## Assembly
This implementation depends on Boost.System, Boost.Asio, Google Log and Google
Tests. Make dependencoes are `cmake`, `make` and `git`. Google Test is included
into project dependencies as git submodule. So, to get sources one should clone
repo recursively.```bash
git clone --recursive https://github.com/daskol/socks-proxy.git
```And then one could start building as follows.
```bash
mkdir -p build/release
cd build/release
cmake ../.. -DCMAKE_BUILD_TYPE=Release
make -j2
```In order to install target binary to system path one should run following.
```bash
make install
```