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 (Optional)

Download Country.mmdb to enable geographic filtering (auto-excludes domestic IPs):

wget -O Country.mmdb https://github.com/Loyalsoldier/geoip/releases/latest/download/Country.mmdb

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.1.0.tar.gz (137.2 kB 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.1.0-py3-none-any.whl (62.0 kB view details)

Uploaded Python 3

File details

Details for the file reality_finder-0.1.0.tar.gz.

File metadata

  • Download URL: reality_finder-0.1.0.tar.gz
  • Upload date:
  • Size: 137.2 kB
  • 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.1.0.tar.gz
Algorithm Hash digest
SHA256 cb2918fc7e0d7a208ca99c8df212621c16cb09c8a02669e7650f147c7ecd4ee8
MD5 11ee576697318adc0242b3549bc3e95d
BLAKE2b-256 9150e38f3896847c4d283e367d461366a00d3a285687d16c41853c3c65d91ef5

See more details on using hashes here.

File details

Details for the file reality_finder-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: reality_finder-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 62.0 kB
  • 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 797d5f9af8b69d094f92eb61715875b426d6a2e4491f62220864dc807da6aa81
MD5 a05b04ed36343a6fdc178ef154b3dcb6
BLAKE2b-256 772a6b23ba00e3946a868a4d5be069eb71f732f4d03e0f8657b8187355003cb8

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