Networking Tool · Retired
Traceroute
Traceroute maps the network path to a host by sending packets with increasing TTL values and listening for the ICMP responses that come back when each hop drops them. It needs raw socket access — something Cloudflare Workers (where this site now runs) don't provide, by design. Here's how to do it properly today.
From the command line
traceroute example.com # macOS, Linux
traceroute -n example.com # don't reverse-resolve (faster)
tracert example.com # Windows
On flaky paths, mtr gives a much more useful
picture — it loops continuously and shows packet loss and
jitter at every hop:
mtr example.com # macOS (brew install mtr), Linux
mtr -r -c 100 example.com # report mode, 100 cycles
mtr -r -c 100 -T -P 443 host.com # TCP probes against port 443 From a browser
For a multi-region path map without installing anything, RIPE Atlas / NCC's looking glass, looking.house, and check-host.net all run traceroute from real measurement nodes in dozens of countries. Pick one near your audience.
Why we can't host it here
Traceroute requires sending UDP/ICMP packets with custom TTL values and reading the ICMP "time exceeded" responses that bounce back. Serverless platforms — Cloudflare Workers, Vercel, Lambda, Deno Deploy — only expose HTTP (and on Workers, plain TCP via the sockets API). Raw IP/ICMP sockets aren't available on any of them, because letting arbitrary tenant code talk directly to IP would be a network-abuse magnet.
We could proxy to a VPS, but a single-location traceroute is rarely what you actually want — the multi-region tools above are strictly more useful.