Skip to content
/ proxxy Public

https and socks5 proxy server

License

Notifications You must be signed in to change notification settings

soylent/proxxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

proxxy

HTTPS & SOCKS5 Proxy

Installation

gem install proxxy

Usage

By default, proxxy starts an HTTPS proxy server on port 3128.

proxxy

Send a request through the proxy server. Note the -p (proxy tunnel) flag.

curl -px https://127.0.0.1:3128 https://www.google.com

You can start several proxy servers.

proxxy https://0.0.0.0:3128 socks5:https://127.0.0.1:1080

For more details please run:

proxxy --help

Logging

Example output:

2020-12-23T20:39:59.300-07:00 127.0.0.1 43878 www.google.com 80 socks5 success 78
2020-12-23T20:42:07.560-07:00 127.0.0.1 43900 www.google.com 443 https success 844

Log messages are printed to stdout in DSV format. Values are separated by space, and each row contains:

  1. Timestamp in ISO 8601
  2. Client address
  3. Client port
  4. Server address
  5. Server port
  6. Proxy type: https or socks5
  7. Status: success or failure
  8. Comment: number of proxied bytes if success or error message if failure

The --quiet option disables logging.

FAQ

  • Errno::EADDRNOTAVAIL (Cannot assign requested address - bind(2) for "::1" port 3000)

    Make sure that IPv6 is enabled. To check if it's disabled, run:

    sudo sysctl -a | grep disable_ipv6
    

Development

Pull requests are welcome!

To run tests, install cutest and execute:

cutest test/proxxy.rb

To run benchmark:

./benchmark