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://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:
- Timestamp in ISO 8601
- Client address
- Client port
- Server address
- Server port
- Proxy type: https or socks5
- Status: success or failure
- 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