Files
proxy-god/README.md
2026-04-15 14:35:18 -07:00

135 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 doesnt 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.
- **18 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 doesnt eat the binary.
- **VM-safe** — Listener stays on **127.0.0.1**—clone the box, DHCP can change; **this doesnt 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 youre 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 dont 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 dont play by proxy rules. Know what youre doing.
- **Clone-friendly**: bind is **loopback**—this repo doesnt bake in LAN IPs.
---
**Proxy God***not because its polite. Because it runs.*