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.
-
On Firefox (PC): Using extension Proxy Toggle, https://addons.mozilla.org/en-GB/firefox/addon/proxy-toggle/ Any extension where Proxy5 is accepted and allows the username/password authentication method.
-
On iOS (Mobile): Using this app, although cost £2-3 its the best option I have found. https://apps.apple.com/gb/app/shadowrocket/id932747118 There may be other options available on Andriod for free.
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
Metadata
Release files for makiproxy5 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| makiproxy5-0.0.1.tar.gz | 20.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| makiproxy5-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.1 kB
Release files / makiproxy5-0.0.1.tar.gz
| Download URL | makiproxy5-0.0.1.tar.gz |
|---|---|
| Size | 20.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b33d335c48254c3d13f0a86213a8478e1e3dd0612da29ee467b3fe259bb47d0b
|
|
BLAKE2b-256 checksum How to use checksums |
9ae5ab49dd4da3d86637358cc175074c371ebc0e9d0cc697b14615c708e98b5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.3
|
Release files / makiproxy5-0.0.1-py3-none-any.whl
| Download URL | makiproxy5-0.0.1-py3-none-any.whl |
|---|---|
| Size | 20.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ebf656ec9f3d91722f51e85c0a83878b1e27532cbc6a9d71697defd727678ba4
|
|
BLAKE2b-256 checksum How to use checksums |
af2397d51212f2172e7ceb013bf3c84881fc5d674a6909df866836abd87d9a3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.3
|