/ranger_proxy

A SOCKS5 Proxy

Primary LanguageC++GNU General Public License v3.0GPL-3.0

ranger_proxy

Join the chat at https://gitter.im/ufownl/ranger_proxy Build Status Coverity Scan

ranger_proxy是一个SOCKS5代理服务器的实现。

使用

使用默认设置启动ranger_proxy

ranger_proxy

查看帮助信息:

ranger_proxy --help
Allowed options:
  -H [--host] arg     : set host
  -p [--port] arg     : set port (default: 1080)
  --username arg      : set username (it will enable username auth method)
  --password arg      : set password
  -k [--key] arg      : set key (default: empty)
  -z [--zlib]         : enable zlib compression (default: disable)
  -t [--timeout] arg  : set timeout (default: 300)
  --log arg           : set log file path (default: empty)
  --policy arg        : set scheduler policy (default: work_stealing)
  --worker arg        : set number of workers (default: hardware_concurrency)
  --throughput arg    : set max throughput of actor (default: unlimited)
  -G [--gate]         : run in gate mode
  --remote_host arg   : set remote host (only used in gate mode)
  --remote_port arg   : set remote port (only used in gate mode)
  --config arg        : load a config file (it will disable all options above)
  -v [--verbose]      : enable verbose output (default: disable)
  -d [--daemon]       : run as daemon
  -h [-?,--help]      : print this text

配置文件格式:

<ranger_proxy>
	<local_host>
		<address>本地IP地址</address>
		<port>本地端口</port>
		<key>加密算法密钥(仅对非Gate模式有效,默认为空)</key>
		<zlib>非0表示启用压缩(仅对非Gate模式有效,默认为0)</zlib>
	</local_host>
	<local_host>
		...
	</local_host>
	<gate>非0表示启用Gate模式(默认为0)</gate>
	<!-- remote_host仅在Gate模式中有效 -->
	<remote_host>
		<address>远程主机IP地址</address>
		<port>远程主机端口</port>
		<key>加密算法密钥(默认为空)</key>
		<zlib>非0表示启用压缩(默认为0)</zlib>
	</remote_host>
	<remote_host>
		...
	</remote_host>
	<timeout>超时时间(单位:秒,默认为300秒)</timeout>
	<policy>调度策略(work_stealing或work_sharing,默认为work_stealing)</policy>
	<worker>工作线程数量(默认值为hardware_concurrency)</worker>
	<throughput>actor消息处理最大吞吐量(默认不作限制)</throughput>
	<log>日志文件路径(默认输出到屏幕)</log>
</ranger_proxy>
<ranger_proxy>
	...
</ranger_proxy>

安装

在完成所有依赖项的安装后,执行以下命令即可完成安装:

mkdir build
cd build
cmake ..
make
make test
make install

依赖

扩展

SOCKS5特性支持

ranger_proxy目前只支持部分SOCKS5特性。

验证方法

  • NO AUTHENTICATION REQUIRED
  • GSSAPI
  • USERNAME/PASSWORD

请求类型

  • CONNECT
  • BIND
  • UDP ASSOCIATE

地址类型

  • IP V4 address
  • DOMAINNAME
  • IP V6 address

License

GNU General Public License Version 3