2019-08-12 05:41:39 +00:00
|
|
|
[![Proxy.Py](ProxyPy.png)](https://github.com/abhinavsingh/proxy.py)
|
2013-08-31 09:19:22 +00:00
|
|
|
|
2019-08-26 16:37:25 +00:00
|
|
|
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![alt text](https://travis-ci.org/abhinavsingh/proxy.py.svg?branch=develop "Build Status")](https://travis-ci.org/abhinavsingh/proxy.py/) [![Coverage Status](https://coveralls.io/repos/github/abhinavsingh/proxy.py/badge.svg?branch=develop)](https://coveralls.io/github/abhinavsingh/proxy.py?branch=develop)
|
2019-02-09 04:25:09 +00:00
|
|
|
|
2013-08-31 09:19:22 +00:00
|
|
|
Features
|
|
|
|
--------
|
|
|
|
|
|
|
|
- Distributed as a single file module
|
2019-08-23 00:09:35 +00:00
|
|
|
- Optionally enable builtin Web Server
|
|
|
|
- Customize proxy and http routing via plugins
|
2018-12-13 17:01:56 +00:00
|
|
|
- No external dependency other than standard Python library
|
2019-08-12 05:41:39 +00:00
|
|
|
- Support for `http`, `https`, `http2` and `websockets` request proxy
|
2019-08-23 00:09:35 +00:00
|
|
|
- Optimized for large file uploads and downloads
|
2018-12-14 13:14:56 +00:00
|
|
|
- IPv4 and IPv6 support
|
|
|
|
- Basic authentication support
|
2019-08-12 05:41:39 +00:00
|
|
|
- Can serve a [PAC (Proxy Auto-configuration)](https://en.wikipedia.org/wiki/Proxy_auto-config) file
|
2013-08-31 09:19:22 +00:00
|
|
|
|
|
|
|
Install
|
|
|
|
-------
|
|
|
|
|
|
|
|
To install proxy.py, simply:
|
|
|
|
|
2019-02-09 04:25:09 +00:00
|
|
|
$ pip install --upgrade proxy.py
|
2013-08-31 09:19:22 +00:00
|
|
|
|
2019-02-09 05:13:34 +00:00
|
|
|
Using docker:
|
|
|
|
|
|
|
|
$ docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py
|
|
|
|
|
2013-08-31 09:19:22 +00:00
|
|
|
Usage
|
|
|
|
-----
|
|
|
|
|
|
|
|
```
|
2019-07-20 19:47:16 +00:00
|
|
|
$ proxy.py -h
|
|
|
|
usage: proxy.py [-h] [--backlog BACKLOG] [--basic-auth BASIC_AUTH]
|
2018-12-13 21:08:08 +00:00
|
|
|
[--client-recvbuf-size CLIENT_RECVBUF_SIZE]
|
2019-08-24 17:23:30 +00:00
|
|
|
[--hostname HOSTNAME] [--ipv4] [--enable-http-proxy]
|
|
|
|
[--enable-web-server] [--log-level LOG_LEVEL]
|
2019-08-26 16:37:25 +00:00
|
|
|
[--log-file LOG_FILE] [--log-format LOG_FORMAT]
|
|
|
|
[--num-workers NUM_WORKERS]
|
2019-08-23 00:09:35 +00:00
|
|
|
[--open-file-limit OPEN_FILE_LIMIT] [--pac-file PAC_FILE]
|
2019-08-26 16:52:43 +00:00
|
|
|
[--pac-file-url-path PAC_FILE_URL_PATH] [--pid-file PID_FILE]
|
|
|
|
[--plugins PLUGINS] [--port PORT]
|
|
|
|
[--server-recvbuf-size SERVER_RECVBUF_SIZE] [--version]
|
2013-08-31 09:19:22 +00:00
|
|
|
|
2019-07-20 19:17:01 +00:00
|
|
|
proxy.py v0.4
|
2013-08-31 09:19:22 +00:00
|
|
|
|
2019-08-23 00:09:35 +00:00
|
|
|
optional arguments:
|
2013-08-31 09:19:22 +00:00
|
|
|
-h, --help show this help message and exit
|
2018-12-13 17:01:56 +00:00
|
|
|
--backlog BACKLOG Default: 100. Maximum number of pending connections to
|
|
|
|
proxy server
|
|
|
|
--basic-auth BASIC_AUTH
|
|
|
|
Default: No authentication. Specify colon separated
|
|
|
|
user:password to enable basic authentication.
|
2018-12-13 21:08:08 +00:00
|
|
|
--client-recvbuf-size CLIENT_RECVBUF_SIZE
|
2019-08-26 16:37:25 +00:00
|
|
|
Default: 1 MB. Maximum amount of data received from
|
2018-12-13 21:08:08 +00:00
|
|
|
the client in a single recv() operation. Bump this
|
|
|
|
value for faster uploads at the expense of increased
|
|
|
|
RAM.
|
2019-07-20 19:47:16 +00:00
|
|
|
--hostname HOSTNAME Default: 127.0.0.1. Server IP address.
|
2019-08-23 00:09:35 +00:00
|
|
|
--ipv4 Whether to listen on IPv4 address. By default server
|
2019-07-20 19:47:16 +00:00
|
|
|
only listens on IPv6.
|
2019-08-24 17:23:30 +00:00
|
|
|
--enable-http-proxy Default: True. Whether to enable
|
2019-08-23 00:09:35 +00:00
|
|
|
proxy.HttpProxyPlugin.
|
2019-08-24 17:23:30 +00:00
|
|
|
--enable-web-server Default: False. Whether to enable
|
2019-08-23 00:09:35 +00:00
|
|
|
proxy.HttpWebServerPlugin.
|
2013-08-31 09:19:22 +00:00
|
|
|
--log-level LOG_LEVEL
|
2019-07-20 19:17:01 +00:00
|
|
|
Valid options: DEBUG, INFO (default), WARNING, ERROR,
|
|
|
|
CRITICAL. Both upper and lowercase values are
|
|
|
|
allowed.You may also simply use the leading character
|
|
|
|
e.g. --log-level d
|
2019-08-26 16:37:25 +00:00
|
|
|
--log-file LOG_FILE Default: sys.stdout. Log file destination.
|
2019-08-20 05:59:11 +00:00
|
|
|
--log-format LOG_FORMAT
|
|
|
|
Log format for Python logger.
|
2019-08-24 17:23:30 +00:00
|
|
|
--num-workers NUM_WORKERS
|
|
|
|
Defaults to number of CPU cores.
|
2019-07-20 19:47:16 +00:00
|
|
|
--open-file-limit OPEN_FILE_LIMIT
|
|
|
|
Default: 1024. Maximum number of files (TCP
|
|
|
|
connections) that proxy.py can open concurrently.
|
2019-07-20 19:17:01 +00:00
|
|
|
--pac-file PAC_FILE A file (Proxy Auto Configuration) or string to serve
|
|
|
|
when the server receives a direct file request.
|
2019-08-23 00:09:35 +00:00
|
|
|
--pac-file-url-path PAC_FILE_URL_PATH
|
|
|
|
Web server path to serve the PAC file.
|
2019-08-26 16:52:43 +00:00
|
|
|
--pid-file PID_FILE Default: None. Save parent process ID to a file.
|
2019-08-23 00:09:35 +00:00
|
|
|
--plugins PLUGINS Comma separated plugins
|
|
|
|
--port PORT Default: 8899. Server port.
|
2019-07-20 19:47:16 +00:00
|
|
|
--server-recvbuf-size SERVER_RECVBUF_SIZE
|
2019-08-26 16:37:25 +00:00
|
|
|
Default: 1 MB. Maximum amount of data received from
|
2019-07-20 19:47:16 +00:00
|
|
|
the server in a single recv() operation. Bump this
|
|
|
|
value for faster downloads at the expense of increased
|
|
|
|
RAM.
|
2019-08-24 17:23:30 +00:00
|
|
|
--version Prints proxy.py version.
|
2013-08-31 09:19:22 +00:00
|
|
|
|
2019-07-20 19:17:01 +00:00
|
|
|
Proxy.py not working? Report at:
|
2013-08-31 09:19:22 +00:00
|
|
|
https://github.com/abhinavsingh/proxy.py/issues/new
|
|
|
|
```
|