ranger_proxy_client implements a client for ranger_proxy which implements a SOCKS5-based proxy server. The server builds another layer between SOCKS5 and TCP to support AES encryption and optional data compression. As a result, vanilla SOCKS5 applications like Google Chrome cannot use it directly. ranger_proxy_client comes in as a client to the remote ranger_proxy server and as a local SOCKS5 server to the applications. It handles the intricacies of the added layer in communicating with the remote server on behalf of local applications. The gap between the remote server and local applications is thus bridged. Take Chrome for example. If the local server is configured to listen on port 56789, then you can launch Chrome with the parameter --proxy-server="SOCKS5://127.0.0.1:56789" to use the proxy service.
It should be noted that although ranger_proxy supports optional data compression, the functionality is not implemented in this client software. We think deciding whether and how data compression should be done is a responsibility of the applications rather than the client. The client may support various applications, and it is difficult to perform data compression that is generally useful. Besides, the stream-oriented nature of the client is in conflict with the block-oriented nature of data compression. Nevertheless, the interface for data compression is built, and it would be easy to integrate an implementation if you choose.
- Build tools supporting C++14 (VC15 tested)
- Boost C++ Libraries (v1.58.0 tested)
- OpenSSL Toolkit (v1.0.2d tested)
- On Windows platforms, Vista/2008 or above is required (see the Remarks section here)
- CMake 3.0 is required to process the listfile
/....................................Root directory
LICENSE
README.md........................The file you are reading now
CMakeLists.txt...................CMake listfile
config.txt.......................Config file for the client
src/.............................All source files of the project
Simply speaking, compile all source files and link with Boost and OpenSSL. A CMake listfile is provided. It has been tested on both Windows and Linux platforms.
This software is distributed under the BSD 3-Clause License. See accompanying LICENSE file at the root directory of this distribution.