Find the lowest-latency Vercel IP from a Linux VPS for a custom routing setup
Run a background CDN latency sweep over SSH and check results later
Compare TCP, HTTPS, and DNS probe times across Cloudflare, Fastly, and AWS endpoints
ICMP probes need root and the README suggests manual scp install for Iran-hosted servers where direct downloads are unreliable.
vscanner is a Python network scanner that tests Vercel and CDN endpoint IPs to find the ones with the lowest latency from your server. The README pitches it at users running Linux VPS servers, with a particular focus on operators in Iran, and notes that the tool has no external Python dependencies and runs on Ubuntu, Debian, and CentOS without needing a pip install. The program takes Vercel CIDR ranges and expands them into individual IPs, then also tests a list of domain-fronting and CDN hostnames covering providers like Cloudflare, Akamai, AWS CloudFront, Fastly, Azure, Google, and Netlify. Each target can be probed with several protocols at once: a plain TCP connect on port 80 or 443, a full HTTP GET, an HTTPS GET with certificate checks turned off, raw ICMP ping which needs root, a DNS resolution timing test, or a full TLS handshake. Picking more protocols gives a more reliable average latency. The scanner auto-detects RAM and CPU on the host and chooses an appropriate worker count, with the README suggesting 32 to 64 workers on VPS machines with 512 MB of RAM or less. By default the scanner runs in the background so users can close their SSH session and check progress later with python3 scanner.py --status. A foreground mode is available for debugging. Three runtime files are created: a JSON status file under /tmp, a background log under /tmp, and the final sorted results in the user's home directory at vercel_scan_results.txt. The result file lists each host with its average latency and a per-protocol breakdown, sorted from fastest to slowest. Installation is offered in two ways. An automated path downloads an install.sh from the repository and runs it as root. The README also recommends a manual path specifically for servers in Iran, where it suggests downloading scanner.py to a local machine and using scp to copy it to the server, since direct downloads from inside the country can be unreliable. It also suggests starting with TCP and DNS probes when filtering is heavy, since those finish faster and do not depend on full HTTP stacks. The project is MIT licensed, and a Persian-language version of the README is linked at the top of the file.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.