Python Socks5 Proxy Server
Allows users to run a Proxy5 server on thier own local computer, implemented using sockets.
Installation
Running the following to install:
pip install makiproxy5
Usage
if __name__ == "__main__":
ps = ProxyServer(host=None, port=10696, username=None, password=None, max_clients=3, secure=True)
ps.run()
- host : This is the current local IP of the devices, this will be automatically so can be left blank.
- port : State the local port you want to clients to use when connecting to the proxy server.
- username : Set allowed username that can access the proxy server during authentication.
- password : Corresponding password required for username during authentication.
- max_client : Allow a maximum of x concurrent connections to the proxy server.
- secure : Disables no authentication method, so all users must provide username/pass to connect.
Example
Example usage for initializing proxy server.
ProxyServer(username="maki", password="password", port=10696, secure=True).run()
Client Connection Options:
There are many ways to use this server, I will mention a few for aid.
Journey and Motivation
I wanted to watch UK TV shows that weren't available while abroad so decided to make a proxy server running on a raspberry pi so that I could watch free of charge and effortlessly.
Of course I could of just bought a monthly subscription to a VPN service or a proxy for a month, but what's the fun in that? I wanted to challenge myself, learn more about things I depend on instead of just using it.
I started my journey by looking at RFC for proxy5 protocol, and inspecting wireshark for proxy server running in practical way, so I could implement it myself.

Michael Peres 22/07/2022
End