Michaelmk708/rust-port_scanner

GitHub: Michaelmk708/rust-port_scanner

一个基于 Rust 的高并发命令行端口扫描器,通过多线程和 MPSC 通道实现快速、安全的端口发现。

Stars: 0 | Forks: 0

# 🚀 并发 Rust 端口扫描器 一个完全使用 Rust 构建的极速、多线程命令行端口扫描器。 这个项目旨在探索底层网络 socket、Rust 严格的内存安全,以及使用线程和消息通道实现的高性能并发。 ## ✨ 功能 * **极致并发:** 为每个正在扫描的端口生成独立的后台线程,以最大限度地减少网络等待时间。 * **MPSC 通道:** 利用 Rust 的 `std::sync::mpsc`(多生产者,单消费者)通道,安全地将数百个独立线程发现的开放端口结果传回主线程,且不会发生数据竞争。 * **严格的 CLI 解析:** 使用 `clap` crate 对目标 IP 地址和端口范围执行严格的、强类型的解析。 * **连接超时:** 通过强制执行严格的 socket 连接限制,防止在数据包丢失时发生挂起。 ## 🛠️ 架构亮点 该扫描器没有采用线性扫描(对于 6.5 万个端口可能需要数小时),而是: 1. 解析目标 IP 和范围。 2. 创建一个 `mpsc` 发送器/接收器通道。 3. 同时为范围内的*每个*端口触发一个分离的 `std::thread`。 4. 在主线程上丢弃发送器,并通过接收器动态等待结果。 ## 📦 安装 确保你的机器上已安装 [Rust 和 Cargo](https://rustup.rs/)。 ``` # 克隆 repository git clone [https://github.com/YOUR_USERNAME/port-scanner.git](https://github.com/YOUR_USERNAME/port-scanner.git) cd port-scanner # 为最大化性能 build 项目 cargo build --release 🚀 Usage You can run the scanner directly via cargo or by executing the compiled binary. View the Help Menu: Bash cargo run -- --help Run a Scan: Provide a target IP (-t), a starting port (-s), and an ending port (-e). Bash # 扫描 Google 的公共 DNS 以查找 open ports cargo run -- -t 8.8.8.8 -s 50 -e 100 (Note: For maximum speed, run the compiled binary located in target/release/port-scanner rather than using cargo run). ⚠️ Disclaimer This tool is for educational and network diagnostic purposes only. Only scan IP addresses and networks that you own or have explicit authorization to test. ```
标签:Rust, 可视化界面, 并发编程, 插件系统, 数据统计, 端口扫描, 网络流量审计, 网络编程, 通知系统