Analysis updated 2026-05-18
Run a home-server proxy service that rotates exit IPs by refreshing a port endpoint.
Automatically test a large pool of proxy nodes daily and remove dead ones.
Give each application a dedicated port that maps to a different live proxy on demand.
| linuxgarry/clashx-random-proxy | 0xhassaan/nn-from-scratch | 3ks/embedoc | |
|---|---|---|---|
| Stars | 0 | 0 | — |
| Language | Python | Python | Python |
| Last pushed | — | — | 2023-06-08 |
| Maintenance | — | — | Dormant |
| Setup difficulty | hard | moderate | hard |
| Complexity | 4/5 | 4/5 | 1/5 |
| Audience | ops devops | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Docker, macvlan networking, and an external PostgreSQL database, personal-use project.
clashx-random-proxy is a self-hosted proxy pool that turns a database of Clash protocol proxy nodes into a simple HTTP proxy service, where each port number maps to a randomly selected live exit IP address. The setup stores a large collection of proxy nodes, supporting protocols including vmess, vless, trojan, and others, inside a PostgreSQL database. Every day at 3am the system tests every node for connectivity, marking each one as alive or inactive based on the result. When you request a specific port number through GET /proxy/{port}, the service picks a random live node, assigns it to that port, and that port then functions as a usable HTTP proxy. Requesting the same port again swaps in a different node, which makes rotating your exit IP as simple as refreshing the endpoint. Ports that go unused for 5 minutes are automatically released back into the pool. The service runs as a single Docker container that combines two processes: mihomo, which handles the actual proxy connections and listens across a configurable port range, and a FastAPI web service that manages node selection, exposes the API endpoints, and runs the daily health test using APScheduler. The two processes are linked together so that if either one exits, the whole container restarts. It is designed to run on a home server, uses macvlan networking to give the container a fixed LAN IP address, and connects out to an external PostgreSQL database rather than bundling one. Configurable settings include the port range, the testing schedule, the batch size used for node testing, and the concurrency level. The README notes plainly that this is a private project intended for personal use only, not a public service.
A self-hosted proxy pool that maps HTTP ports to randomly rotating live proxy nodes stored in a PostgreSQL database.
Mainly Python. The stack also includes Python, FastAPI, PostgreSQL.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.