A high-precision, adaptive network diagnostic and Cloudflare IP optimization suite designed for filtered and low-bandwidth environments. argo-ip-radar utilizes weighted subnet analysis, multi-worker concurrency, and real-time performance feedback to find the best Cloudflare entry points for WebSocket (WS) and SplitHTTP (XHTTP) Argo Tunnel configurations.
- Description
- Key Features
- Requirements
- Usage
- Supported Protocols & Configurations
- Benchmarking Matrix
- How it Works
- License
In regions with aggressive internet filtering, deep packet inspection (DPI), and unstable connections, simple TCP or ping scanners fail because:
- Low ping does not guarantee actual upload or download bandwidth.
- Standard TLS handshakes without browser emulation (uTLS fingerprints) are easily detected and blocked.
- Suboptimal ALPN negotiation (e.g. failing to negotiate HTTP/2 or HTTP/3) can throttle connections.
argo-ip-radar solves these challenges by running actual end-to-end VLESS connections through the anti-censorship Xray core. It performs a multi-stage benchmark: rapid reachability screening across configurable workers, true download and upload throughput measurement, ALPN combination testing, and best-practice TLS fingerprint optimization.
- Full WS & XHTTP (SplitHTTP) Support
Seamlessly supports both
type=wsandtype=xhttp(withmode=packet-up,x_padding_bytes, etc.). - Real Download & Upload Speed Benchmarking Measures true throughput (kbps and Mbps) via Cloudflare speed test CDN endpoints over the live proxy tunnel—not just ping or handshake latency.
- Relevant ALPN Combination Matrix
Tests relevant ALPN combinations (
h3,h2,http/1.1,h2,http/1.1,http/1.1,h2,h3) to identify which combination yields maximum speed and minimum latency. - Best-Practice Browser Fingerprints (uTLS)
Tests top browser ClientHello profiles (
chrome,firefox,safari,ios,edge) to resist DPI filtering. - Configurable Concurrency & IP Count
Easily customize the number of concurrent worker threads (
-w / --workers) and the number of randomly generated IPs (-n / --count). - Instant Ready-to-Use VLESS Link
Automatically prints the updated
vless://link containing the best IP, optimal ALPN, and recommended fingerprint. - Weighted Subnet Intelligence (
subnets.json) Uses historical performance weights to prioritize high-performing Cloudflare CIDR blocks.
- Python 3.8+
- Xray Core 1.8+ / 26.x+ (
/usr/local/bin/xrayor in system$PATH) subnets.json(Included Cloudflare CIDR performance tracking database)
Run a complete scan by passing your vless:// configuration URL directly:
# Scan an XHTTP configuration with 16 workers and 50 random IPs
python3 web-check.py 'vless://00000000-0000-0000-0000-000000000000@example.com:443?alpn=h3%2Ch2%2Chttp%2F1.1&encryption=none&extra=%7B%22mode%22%3A%22packet-up%22%2C%22xPaddingBytes%22%3A%22100-1000%22%7D&fp=chrome&host=your-argo-domain.com&mode=packet-up&path=%2Fxhttp-path&security=tls&sni=your-argo-domain.com&type=xhttp&x_padding_bytes=100-1000#Argo-XHTTP-Example' --count 50 --workers 16# Scan a WebSocket configuration with 16 workers and 50 random IPs
python3 web-check.py 'vless://00000000-0000-0000-0000-000000000000@example.com:443?alpn=http%2F1.1&encryption=none&fp=chrome&host=your-argo-domain.com&path=%2Fws-path%3Fed%3D2560&security=tls&sni=your-argo-domain.com&type=ws#Argo-WS-Example' --count 50 --workers 16| Flag | Default | Description |
|---|---|---|
config |
$ARGO_IP_RADAR_CONFIG |
VLESS URL (ws or xhttp). |
-w, --workers |
16 |
Number of concurrent workers for parallel testing. |
-n, --count |
100 |
Number of Cloudflare IPs to randomly generate from subnets.json. |
--ips |
ips.txt |
Path to custom candidate IPs file. |
--subnets |
subnets.json |
Path to subnets database. |
--top |
5 |
Number of top alive candidates to test for full speed, ALPN, and FP. |
--skip-speed |
False |
Skip throughput speed test (only test ping). |
--skip-alpn |
False |
Skip testing ALPN combinations. |
--skip-fp |
False |
Skip testing browser fingerprints. |
--dl-bytes |
250000 |
Download test payload size in bytes (~250 KB). |
--ul-bytes |
100000 |
Upload test payload size in bytes (~100 KB). |
--ping-timeout |
2.5 |
Timeout in seconds for initial reachability probe. |
--no-color |
False |
Disable terminal color formatting. |
To generate candidate IPs into ips.txt without scanning immediately:
# Generate 500 candidate IPs
python3 ip-gen.py --count 500 --output ips.txtAfter scanning, detailed results are saved to results/. Use sorter.py to filter and sort candidates:
# Sort by balanced performance score (default)
python3 sorter.py
# Sort by download throughput
python3 sorter.py --by download
# Sort by upload throughput
python3 sorter.py --by upload
# Sort by latency
python3 sorter.py --by latency --top 10- For XHTTP: Tests
["h3", "h2", "http/1.1"],["h2", "http/1.1"],["http/1.1"],["h2"], and["h3"]. - For WS: Tests
["http/1.1"]and["h2", "http/1.1"].
Tests best-practice browser fingerprints:
chrome, firefox, safari, ios, edge.
- Download Speed: Fetches chunk data directly from
https://speed.cloudflare.com/__downthrough the VLESS tunnel and computes throughput in kbps and Mbps. - Upload Speed: Transmits test payloads to
https://speed.cloudflare.com/__upthrough the VLESS tunnel and computes upload throughput in kbps and Mbps. - Balanced Score: $$\text{Score} = (\text{Download}{\text{kbps}} \times 0.5) + (\text{Upload}{\text{kbps}} \times 0.3) - (\text{Latency}_{\text{ms}} \times 0.2)$$
┌───────────────────────────────┐
│ 1. ip-gen (Weighted Subnets) │
└───────────────┬───────────────┘
▼
┌───────────────────────────────┐
│ Candidate Cloudflare IPs │
└───────────────┬───────────────┘
▼
┌───────────────────────────────┐
│ Phase 1: Rapid Pre-Filter │
│ (W Workers, Handshake & Ping) │
└───────────────┬───────────────┘
▼
┌───────────────────────────────┐
│ Phase 2: Real Speed Benchmark │
│ (True Download & Upload kbps) │
└───────────────┬───────────────┘
▼
┌───────────────────────────────┐
│ Phase 3: ALPN & FP Matrix │
│ (Optimal ALPN + Best uTLS FP) │
└───────────────┬───────────────┘
▼
┌───────────────────────────────┐
│ Phase 4: Output & Link Gen │
│ Best IP, ALPN, ready VLESS URL│
└───────────────────────────────┘
This project is licensed under the MIT License.