130 lines
4.4 KiB
Markdown
130 lines
4.4 KiB
Markdown
# Proxy God — Rotating Proxy Chain Manager for Windows
|
||
|
||
Auto-fetches, validates and rotates multi-hop proxy chains with a live GUI, Windows kill-switch firewall, system proxy enforcement, and tray icon. Works on top of NordVPN (or any VPN) as the outer tunnel.
|
||
|
||
```
|
||
YOU → NordVPN (OS tunnel) → Hop 1 → Hop 2 → Hop 3 → Internet
|
||
```
|
||
|
||
---
|
||
|
||
## Features
|
||
|
||
- **Auto proxy pool** — fetches from Proxifly CDN every 30 min, validates concurrently
|
||
- **Multi-hop GOST chains** — 2–8 hops, randomly picked from validated pool
|
||
- **Obfuscation modes** — Auto, HTTP-only, SOCKS5-only, Random Mix
|
||
- **Manual chain builder** — drag/reorder hops, pin your own IPs
|
||
- **Exit IP verification** — checks real exit IP every health cycle, rotates if it matches your real IP
|
||
- **Windows system proxy** — sets `HKCU` registry proxy so all WinINet apps use the chain
|
||
- **Firewall kill-switch** — `netsh` rules that block all outbound except GOST + NordVPN when running as Admin
|
||
- **Tray icon** — green/yellow/red circle, right-click menu
|
||
- **Boot persistence** — Task Scheduler logon task
|
||
|
||
---
|
||
|
||
## Requirements
|
||
|
||
- **Windows 10/11 x64**
|
||
- **Python 3.10+** (or use the pre-built `.exe`)
|
||
- **NordVPN** (recommended but optional — any VPN works)
|
||
|
||
---
|
||
|
||
## Quick Start (from source)
|
||
|
||
```cmd
|
||
git clone https://gitea.thetempleofdoom.com/drjones/proxy-god.git
|
||
cd proxy-god
|
||
pip install -r requirements.txt
|
||
python run.py
|
||
```
|
||
|
||
> Run as **Administrator** for full kill-switch firewall enforcement.
|
||
|
||
---
|
||
|
||
## Build standalone `.exe`
|
||
|
||
```cmd
|
||
build_exe.bat
|
||
```
|
||
|
||
Output: `dist\ProxyChainManager.exe` + copied to Desktop.
|
||
|
||
---
|
||
|
||
## Usage
|
||
|
||
1. Launch `ProxyChainManager.exe` (accept UAC prompt for Admin)
|
||
2. Configure settings in **Settings** tab if needed (defaults work fine)
|
||
3. Click **▶ Start** — the app will:
|
||
- Download GOST (one time, ~9 MB) and add Defender exclusion
|
||
- Fetch proxy lists from Proxifly CDN
|
||
- Validate them concurrently
|
||
- Build a random N-hop chain
|
||
- Verify the exit IP is different from your real IP
|
||
- Set Windows system proxy
|
||
- Engage firewall kill-switch (Admin only)
|
||
4. Close window → minimizes to tray (chain keeps running)
|
||
5. Click **Quit** or tray → Quit to fully stop
|
||
|
||
---
|
||
|
||
## Chain Builder Tab
|
||
|
||
- **Obfuscation mode** — selects which protocols to include in chains
|
||
- **Hop count slider** — 2–8 hops
|
||
- **Manual chain** — enter proxies manually, reorder with ↑↓, enable "Use this chain" to pin it
|
||
- **Paste current** — copies the auto-selected chain into the editor
|
||
- **Sources** — add/remove proxy list URLs (JSON format from Proxifly)
|
||
|
||
---
|
||
|
||
## Settings Reference
|
||
|
||
| Setting | Default | Description |
|
||
|---|---|---|
|
||
| Local port | 18888 | HTTP proxy port — point apps here |
|
||
| Health check sec | 180 | How often to re-verify exit IP |
|
||
| Full refresh sec | 1800 | How often to re-fetch + re-validate |
|
||
| Concurrency | 64 | Parallel proxy validators |
|
||
| Max candidates | 400 | Max proxies sampled for validation per cycle |
|
||
| Timeout sec | 12 | Per-proxy validation timeout |
|
||
| Kill-switch | ON | Block all outbound traffic except GOST + Nord |
|
||
|
||
---
|
||
|
||
## Architecture
|
||
|
||
```
|
||
app.py GUI (CustomTkinter, 3 tabs)
|
||
service.py Background thread — pool management, GOST lifecycle, health check
|
||
gost_util.py Downloads and manages gost.exe
|
||
firewall.py netsh kill-switch rules
|
||
sysproxy.py Windows registry system proxy (WinINet broadcast)
|
||
tray.py pystray tray icon
|
||
config.py Settings dataclass + JSON persistence
|
||
validator.py Async proxy validation + exit IP checking
|
||
fetcher.py Proxifly JSON fetcher
|
||
```
|
||
|
||
---
|
||
|
||
## Proxy Sources
|
||
|
||
Default sources use [proxifly/free-proxy-list](https://github.com/proxifly/free-proxy-list) CDN:
|
||
- `https://cdn.jsdelivr.net/gh/proxifly/free-proxy-list@main/proxies/protocols/http/data.json`
|
||
- `https://cdn.jsdelivr.net/gh/proxifly/free-proxy-list@main/proxies/protocols/socks5/data.json`
|
||
- `https://cdn.jsdelivr.net/gh/proxifly/free-proxy-list@main/proxies/protocols/https/data.json`
|
||
|
||
You can add any URL returning a JSON array of `{"proxy":"http://ip:port", ...}` objects.
|
||
|
||
---
|
||
|
||
## Notes
|
||
|
||
- Free public proxies are **untrusted** — do not send sensitive unencrypted data
|
||
- NordVPN (or any VPN) as the OS tunnel means the proxy operators only see the VPN exit IP, not your ISP IP
|
||
- Kill-switch requires **Admin** — UAC prompt appears on launch
|
||
- Works on cloned VMs — all listeners bind to `127.0.0.1`, not the machine's LAN IP
|