qwj / python-proxy

HTTP/HTTP2/HTTP3/Socks4/Socks5/Shadowsocks/ShadowsocksR/SSH/Redirect/Pf TCP/UDP asynchronous tunnel proxy implemented in Python 3 asyncio.
MIT License
1.99k stars 333 forks source link

Protocol table #186

Open colemar opened 5 months ago

colemar commented 5 months ago

Protocol table should look like this:

image

+-------------------+------------+------------+------------+------------+--------------+
| Name              | TCP server | TCP client | UDP server | UDP client | scheme       |
+===================+============+============+============+============+==============+
| http (connect)    | v          | v          |            |            | http://      |
+-------------------+------------+------------+------------+------------+--------------+
| http              |            | v          |            |            | httponly://  |
| (get,post,etc)    |            |            |            |            | (as client)  |
+-------------------+------------+------------+------------+------------+--------------+
| http v2 (connect) | v          | v          |            |            | h2://        |
+-------------------+------------+------------+------------+------------+--------------+
| http v3 (connect) | v by UDP   | v by UDP   |            |            | h3://        |
+-------------------+------------+------------+------------+------------+--------------+
| https             | v          | v          |            |            | http+ssl://  |
+-------------------+------------+------------+------------+------------+--------------+
| socks4            | v          | v          |            |            | socks4://    |
+-------------------+------------+------------+------------+------------+--------------+
| socks5            | v          | v          | v udp-only | v udp-only | socks5://    |
+-------------------+------------+------------+------------+------------+--------------+
| socks5 over TLS   | v          | v          |            |            | socks5+ssl://|
+-------------------+------------+------------+------------+------------+--------------+
| shadowsocks       | v          | v          | v          | v          | ss://        |
+-------------------+------------+------------+------------+------------+--------------+
| shadowsocks aead  | v          | v          |            |            | ss://        |
+-------------------+------------+------------+------------+------------+--------------+ 
| shadowsocksR      | v          | v          |            |            | ssr://       |
+-------------------+------------+------------+------------+------------+--------------+ 
| trojan            | v          | v          |            |            | trojan://    |
+-------------------+------------+------------+------------+------------+--------------+
| ssh tunnel        |            | v          |            |            | ssh://       |
+-------------------+------------+------------+------------+------------+--------------+
| quic              | v by UDP   | v by UDP   | v          | v          | http+quic:// |
+-------------------+------------+------------+------------+------------+--------------+
| iptables nat      | v          |            |            |            | redir://     |
+-------------------+------------+------------+------------+------------+--------------+
| pfctl nat (macos) | v          |            |            |            | pf://        |
+-------------------+------------+------------+------------+------------+--------------+
| echo              | v          |            | v          |            | echo://      |
+-------------------+------------+------------+------------+------------+--------------+
| tunnel            | v          | v          | v          | v          | tunnel://    |
| (raw socket)      |            |            |            |            | tunnel{ip}://|
+-------------------+------------+------------+------------+------------+--------------+
| websocket         | v          | v          |            |            | ws://        |
|(simple tunnel)    |            |            |            |            | ws{dst_ip}://|
+-------------------+------------+------------+------------+------------+--------------+
| xxx over TLS      | v          | v          |            |            | xxx+ssl://   |
+-------------------+------------+------------+------------+------------+--------------+
| AUTO DETECT       | v          |            | v          |            | a+b+c+d://   |
+-------------------+------------+------------+------------+------------+--------------+