135 lines
5.2 KiB
Markdown
135 lines
5.2 KiB
Markdown
# Proxy God
|
||
|
||
**Multi-hop proxy chains. Self-healing. Windows-native. You pick the exit; the machine enforces the rules.**
|
||
|
||
Not another toy script. This is a full **rotating chain engine** on top of **GOST**: it pulls lists, stress-tests proxies in parallel, builds random hops, and **keeps checking** until something dies—then it **rotates** and keeps going. Optional **firewall kill-switch** so traffic either goes through your chain or **it doesn’t go out at all** (when you run as Admin). Works **under NordVPN** (or any VPN) so your outer tunnel stays first—then the chaos of public proxies happens **inside** that envelope.
|
||
|
||
```
|
||
YOU → VPN (outer tunnel) → Hop 1 → Hop 2 → … → Last hop → Internet
|
||
```
|
||
|
||
---
|
||
|
||
## What it does (the short version)
|
||
|
||
| Layer | What happens |
|
||
|--------|----------------|
|
||
| **Pool** | Fetches live lists (Proxifly CDN), dedupes, validates like a hammer. |
|
||
| **Chain** | Random **N-hop** path through survivors—no lazy repeats in a cycle. |
|
||
| **Exit check** | If your “exit IP” looks like your **real** IP, the chain is **dead**—rotate. |
|
||
| **System proxy** | WinINet gets the rules—apps that respect Windows proxy **follow the chain**. |
|
||
| **Kill-switch** | Optional **netsh** lockdown: **GOST**, **this app**, **NordVPN stack** get out; everything else can **wait** (Admin). |
|
||
| **Tray** | Green / yellow / red. You know the state without opening the window. |
|
||
| **Boot** | Scheduled task—**fire on logon**, keep the machine in the game. |
|
||
|
||
---
|
||
|
||
## Firepower (features)
|
||
|
||
- **Auto pool** — Pull, validate, shuffle, drain. Rinse on a timer.
|
||
- **1–8 hops** — Slider + top-bar **+/−**. You control depth.
|
||
- **Obfuscation modes** — Auto, HTTP-only, SOCKS5-only, Random Mix.
|
||
- **Fixed exit** — **Last hop only**: yours. Everything else still rotates. Hop count **1** = **only** your exit, no pool.
|
||
- **Pinned chain** — Full manual order when you want to **own** the path.
|
||
- **Leak sniffing** — Compares exit IP vs direct; mismatch or no exit = **rotate**.
|
||
- **GOST** — Downloaded once; **Defender exclusion** on the app folder so AV doesn’t eat the binary.
|
||
- **VM-safe** — Listener stays on **127.0.0.1**—clone the box, DHCP can change; **this doesn’t care**.
|
||
|
||
---
|
||
|
||
## Requirements
|
||
|
||
- **Windows 10/11 x64**
|
||
- **Python 3.10+** *or* the built **`.exe`**
|
||
- **VPN** recommended (Nord or any)—outer tunnel before the proxy zoo
|
||
|
||
---
|
||
|
||
## Quick start (source)
|
||
|
||
```cmd
|
||
git clone https://gitea.thetempleofdoom.com/drjones/proxy-god.git
|
||
cd proxy-god
|
||
pip install -r requirements.txt
|
||
python run.py
|
||
```
|
||
|
||
**Administrator** = full kill-switch. No admin = still runs; firewall enforcement steps aside.
|
||
|
||
---
|
||
|
||
## Build the binary
|
||
|
||
```cmd
|
||
build_exe.bat
|
||
```
|
||
|
||
**Output:** `dist\ProxyChainManager.exe` — script also tries to drop a copy on your **Desktop**.
|
||
|
||
---
|
||
|
||
## Run it like you mean it
|
||
|
||
1. Launch **`ProxyChainManager.exe`** (UAC if you want the kill-switch).
|
||
2. Tweak **Settings** if you’re picky—defaults are **solid** out of the box.
|
||
3. Hit **Start**. First run grabs **GOST**, whitelists the folder in Defender, pulls lists, validates, chains, verifies exit IP, sets **system proxy**, engages **firewall** (if Admin).
|
||
4. Close the window → **tray**; the engine **keeps running** until you **Quit**.
|
||
|
||
---
|
||
|
||
## Chain Builder (where you get surgical)
|
||
|
||
- **Mode** — Protocol mix for the pool.
|
||
- **Hops** — Total length; **fixed exit** always rides **last** (unless you pinned a full manual chain).
|
||
- **Manual list** — Add, reorder, **pin** when you don’t trust randomness.
|
||
- **Sources** — Your JSON URLs; defaults are Proxifly CDN endpoints.
|
||
|
||
---
|
||
|
||
## Settings cheat sheet
|
||
|
||
| Setting | Default | Meaning |
|
||
|--------|---------|--------|
|
||
| Local port | `18888` | Where your HTTP proxy **listens** |
|
||
| Health check | `180` s | How often the exit **gets re-proven** |
|
||
| Pool refresh | `1800` s | How often lists get **re-fetched** and re-tested |
|
||
| Concurrency | `64` | How hard you **spam** validation |
|
||
| Max candidates | `400` | Cap per cycle before testing |
|
||
| Timeout | `12` s | Per-proxy **patience** |
|
||
| Kill-switch | ON | **All-or-nothing** outbound (when Admin + firewall engaged) |
|
||
|
||
---
|
||
|
||
## Stack (for people who read code)
|
||
|
||
```
|
||
app.py Dark UI — CustomTkinter, tabs, tray
|
||
service.py Async loop — pool, GOST, health, rotation
|
||
gost_util.py GOST binary + Defender hook
|
||
firewall.py netsh kill-switch
|
||
sysproxy.py Registry + WinINet broadcast
|
||
tray.py Status icon
|
||
validator.py httpx + SOCKS — parallel checks
|
||
fetcher.py Proxifly JSON
|
||
config.py Settings + sanitization
|
||
```
|
||
|
||
---
|
||
|
||
## Default sources
|
||
|
||
[Proxifly / free-proxy-list](https://github.com/proxifly/free-proxy-list) over jsDelivr—**HTTP**, **SOCKS5**, **HTTPS** JSON feeds. Roll your own: any URL that returns `[{"proxy":"http://ip:port",...}, ...]`.
|
||
|
||
---
|
||
|
||
## Reality check (read this)
|
||
|
||
- **Public proxies are hostile**—treat them as **disposable**. No banking over cleartext.
|
||
- **VPN first** means proxy operators see the **VPN exit**, not your home ISP.
|
||
- **Kill-switch** is **serious**—it can block apps that don’t play by proxy rules. Know what you’re doing.
|
||
- **Clone-friendly**: bind is **loopback**—this repo doesn’t bake in LAN IPs.
|
||
|
||
---
|
||
|
||
**Proxy God** — *not because it’s polite. Because it runs.*
|