RustScan: Find Open Ports in Seconds, Not Minutes
If you've ever run a network scan, you've felt the wait. Traditional port scanners are thorough, but they can feel like watching paint dry, especially when you're iterating quickly or scanning large ranges. What if you could get those results almost as soon as you hit enter?
Enter RustScan. This isn't just another incremental improvement. It's a port scanner built in Rust that leverages asynchronous I/O to deliver results at a blistering pace. It’s the tool you reach for when you need to know what's open, and you need to know now.
What It Does
In essence, RustScan is a modern port scanner. You give it a target—a single IP, a range, or a hostname—and it rapidly discovers which TCP ports are open. Its real magic is in its workflow: it performs an initial ultra-fast scan to find open ports, and then can automatically pipe those ports into another tool like nmap for detailed service interrogation. This combines the best of both worlds: speed and depth.
Why It's Cool
The "lightning-fast" claim isn't just marketing. Here’s what makes RustScan stand out:
- Raw Speed: Built on Rust's
async-stdlibrary, it can fire off thousands of packets concurrently. It often completes scans in seconds where other tools take minutes. The default is to scan the top 1000 ports, but you can scan all 65535 ports faster than you'd think possible. - Intelligent Pipeline: Instead of trying to be everything, RustScan excels at the discovery phase. Its
-gflag lets you take the list of open ports it finds and feed them directly intonmapfor version detection, scripting, and deeper analysis. ThisRustScan -> Nmappipeline is a killer feature. - Developer-Friendly UX: It has sensible defaults, clear output, and useful features like customizable batch sizes and scan delays to avoid tripping IDS/IPS. The tool feels built by someone who actually uses it.
- Adaptability: Need to scan a massive range? Adjust the batch size. Dealing with a sensitive network? Tune the delay. It gives you the knobs to turn without being overwhelming.
How to Try It
Getting started is straightforward. The easiest method is via Docker:
docker run -it --rm --name rustscan rustscan/rustscan:latest <target>
Replace <target> with an IP (e.g., 192.168.1.1) or hostname.
For native installation, you can use package managers or grab a pre-built binary from the