You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Specify multiple remote servers for outcoming traffic: HTTP/Socks5/Shadowsocks.
13
+
- Unix domain socket support for communicating locally.
14
+
- Basic authentication support for all three protocols.
15
+
- Regex pattern file support to route/block by hostname matching.
16
+
- SSL connection support to prevent Man-In-The-Middle attack.
17
+
- Many ciphers support to keep communication securely. (chacha20, aes-256-cfb, etc)
18
+
- Shadowsocks OTA (One-Time-Auth) experimental feature support.
19
+
- Basic statistics for bandwidth and total traffic by client/hostname.
20
+
- PAC support for automatically javascript configuration.
5
21
6
22
Python 3.6
7
23
-----------
8
24
9
-
*Python 3.5* added new syntax *async def* and *await* to make asyncio programming easier. *Python 3.6* added new syntax *formatted string literals*. This utility is to demonstrate these new syntax and is also fully ready for production usage.
25
+
*Python 3.5* added new syntax *async def* and *await* to make asyncio programming easier. *Python 3.6* added new syntax *formatted string literals*. This tool is to demonstrate how compact these new syntax can be. It includes many features, and is also fully ready for production usage.
- Basic authentication method for HTTP/Socks5/Shadowsocks.
23
-
- Regex pattern file support for redirecting/blocking by hostname.
24
-
- SSL connection support to prevent Man-In-The-Middle attack.
25
-
- Many ciphers support to keep communication securely. (chacha20, salsa20, aes-256-cfb, etc)
26
-
- Basic statistics for bandwidth and total traffic by client/hostname.
27
-
- PAC support for automatically javascript configuration.
35
+
*pycryptodome* is the optional required library to enable cipher encryption support. Without installing this, you can still use pproxy with no encryption.
28
36
29
37
Usage
30
38
-----------
@@ -53,19 +61,46 @@ Uri Syntax
53
61
{scheme}://[{cipher}@]{netloc}[?{rules}][#{auth}]
54
62
55
63
- scheme
56
-
- Currently supported scheme: http, socks, ss, ssl, secure. You can use + to add multiple protocols together.
@@ -106,5 +141,12 @@ Next, run pproxy.py remotely on server "aa.bb.cc.dd"
106
141
107
142
pproxy -i ss://chacha20:cipher_key@:12345
108
143
109
-
By doing this, the traffic between local and aa.bb.cc.dd is encrypted by stream cipher Chacha20 with key "This is a cipher key". If target hostname is not in "rules", traffic will go through locally. Otherwise, traffic will go through the remote server by encryption.
144
+
By doing this, the traffic between local and aa.bb.cc.dd is encrypted by stream cipher Chacha20 with key "cipher_key". If target hostname is not matched by regex file "rules", traffic will go through locally. Otherwise, traffic will go through the remote server by encryption.
It listen on the unix domain socket /tmp/pproxy_socket, and use cipher name salsa20, cipher key "complex_cipher_key", and enable OTA encryption for shadowsocks protocol. The traffic is tunneled to remote https proxy with simple authentication.
0 commit comments