Skip to main content

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 -n suitable domains are found

Credits

License

GPL-3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reality_finder-0.2.0.tar.gz (4.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reality_finder-0.2.0-py3-none-any.whl (4.3 MB view details)

Uploaded Python 3

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

Hashes for reality_finder-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c16bfdadb8d55cbdd016c8b7a2348e39b6b66dc9dee389b796292e788b7da300
MD5 046e53b276bf8f398ee059dac01c98ae
BLAKE2b-256 420d405bb88e6b69c66292a82d7b7c716f3e01da30086190d26d17357ac7e803

See more details on using hashes here.

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

Hashes for reality_finder-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8605c2739e0aeb174601cc90139d629ffa4f2e7a9859b6d54da38517a4c05c4d
MD5 e04ee62e0427fbd41fa6956610a64ce6
BLAKE2b-256 8ce76363bd6ea23f0c68635fda0bb0767022a89c676a31a978e02852c1184c21

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page