Find suitable Reality protocol dest domains by scanning IP ranges
Project description
Reality Finder
Find suitable Reality protocol dest domains by scanning nearby IP ranges and verifying TLS compatibility.
Based on RealiTLScanner and RealityChecker, rewritten in Python as a unified tool.
Quick Start
No installation needed:
uvx reality-finder find -addr <YOUR_VPS_IP> -n 10 -thread 10 -timeout 5
Requires uv
Example Output
Reality Finder — finding 10 suitable dests
Rating Domain Handshake Validity CDN Hot
─────────────────────────────────────────────────────────────────
★★★ example1.com 43ms 89d - -
★★★ example2.com 72ms 62d - -
★★ example3.com 85ms 59d Med -
★ example4.com 120ms 71d - Yes
342 scanned · 28 feasible · 10 passed · 45.2s
★★★ Recommended ★★ Usable (CDN detected) ★ Use with caution (popular site)
Installation (Optional)
Install as a persistent tool:
uv tool install reality-finder
Or from source:
git clone https://github.com/huanglune/reality-finder
cd reality-finder
uv sync
uv run reality-finder find -addr <VPS_IP> -n 10
Usage
find — Scan + Verify (Recommended)
# Scan outward from your VPS IP, stop after finding 10 suitable domains
uvx reality-finder find -addr <VPS_IP> -n 10
# Find 5, with 20 concurrent workers
uvx reality-finder find -addr <VPS_IP> -n 5 -thread 20 -timeout 5
# Scan a specific CIDR range
uvx reality-finder find -addr <VPS_IP>/24 -n 10
# Save results to file
uvx reality-finder find -addr <VPS_IP> -n 10 -out result.txt
# Verbose: show why domains failed
uvx reality-finder -v find -addr <VPS_IP> -n 10
What should -addr be?
Your VPS IP. Reality protocol requires your proxy to perform a TLS handshake with the dest server. The closer the dest is (same datacenter/subnet), the lower the latency. The tool automatically scans outward from your IP to find nearby candidates.
scan — Scan Only
Raw TLS scan without verification, outputs CSV.
uvx reality-finder scan -addr <IP>/24 -thread 10 -timeout 5 -out raw.csv
check — Verify Only
Deep-check known domains without scanning.
uvx reality-finder check -d example.com
uvx reality-finder check -csv raw.csv
uvx reality-finder check -f domains.txt
How It Works
Scans IP ranges for TLS 1.3 + H2 endpoints, then verifies each candidate through a multi-stage pipeline: GFW blocklist, GeoIP, TLS 1.3, X25519, HTTP/2, SNI match, certificate validity, CDN detection, and popular website detection. Domains that fail hard requirements are excluded; CDN and popularity are flagged but not excluded.
GeoIP
GeoIP database (Country.mmdb) is bundled — geographic filtering works out of the box.
Notes
- Run locally — Scanning from cloud VPS may get the IP flagged
- Auto-stop — Stops once
-nsuitable domains are found
Credits
License
GPL-3.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reality_finder-0.2.0.tar.gz.
File metadata
- Download URL: reality_finder-0.2.0.tar.gz
- Upload date:
- Size: 4.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c16bfdadb8d55cbdd016c8b7a2348e39b6b66dc9dee389b796292e788b7da300
|
|
| MD5 |
046e53b276bf8f398ee059dac01c98ae
|
|
| BLAKE2b-256 |
420d405bb88e6b69c66292a82d7b7c716f3e01da30086190d26d17357ac7e803
|
File details
Details for the file reality_finder-0.2.0-py3-none-any.whl.
File metadata
- Download URL: reality_finder-0.2.0-py3-none-any.whl
- Upload date:
- Size: 4.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8605c2739e0aeb174601cc90139d629ffa4f2e7a9859b6d54da38517a4c05c4d
|
|
| MD5 |
e04ee62e0427fbd41fa6956610a64ce6
|
|
| BLAKE2b-256 |
8ce76363bd6ea23f0c68635fda0bb0767022a89c676a31a978e02852c1184c21
|