crazywifi/Rust_Port_Scanner

GitHub: crazywifi/Rust_Port_Scanner

一个用 Rust 编写的轻量级多线程 TCP 端口扫描器,提供 Nmap 风格的输出格式,无需外部依赖即可快速发现目标主机的开放端口和服务。

Stars: 0 | Forks: 0

# 🔍 Rust 端口扫描器 一个使用 Rust 编写的快速、多线程 TCP 端口扫描器,提供 **nmap 风格的输出**。专为速度和简洁性而构建 —— 无需外部依赖。 ## ✨ 功能特性 - ⚡ **多线程扫描** —— 默认将端口分配至多达 100 个并发线程 - 🎯 **灵活的端口目标设定** —— 支持单个端口、逗号分隔的列表或端口范围 - 🏷️ **服务识别** —— 识别 70 余个知名端口(SSH、HTTP、MySQL、Redis 等) - 📊 **Nmap 风格输出** —— 熟悉的 `PORT / STATE / SERVICE` 表格格式 - 📈 **实时进度指示器** —— 每扫描 50 个端口更新一次 - 🔌 **三种端口状态** —— `open`、`closed`、`filtered` ## 📦 安装 ### 前置条件 - [Rust](https://www.rust-lang.org/tools/install) 1.56+(2021 edition) ### 从源码构建 ``` git clone https://github.com/your-username/Rust_Port_Scanner.git cd Rust_Port_Scanner cargo build --release ``` 编译后的二进制文件位于 `target/release/port_scanner`。 ### Windows 预编译二进制文件 仓库根目录中包含适用于 Windows x86-64 的预编译 `port_scanner.exe`。 ## 🚀 用法 ``` port_scanner [OPTIONS] ``` ### 参数 | 参数 | 描述 | |----------|-------------| | `` | 目标主机名或 IP 地址(必填) | ### 选项 | 标志 | 值 | 默认值 | 描述 | |------|-------|---------|-------------| | `-p` | `` | `1-1024` | 要扫描的端口(见下方格式说明) | | `-T` | `` | `500` | 每个端口的连接超时时间(毫秒) | | `-t` | `` | `100` | 使用的线程数量 | ## 📋 示例 **扫描主机的默认端口 1–1024:** ``` ./port_scanner scanme.nmap.org ``` **扫描特定范围:** ``` ./port_scanner 192.168.1.1 -p 1-65535 ``` **扫描以逗号分隔的端口列表:** ``` ./port_scanner example.com -p 22,80,443,3306,8080 ``` **混合端口范围与单独端口:** ``` ./port_scanner 10.0.0.1 -p 1-100,443,8080-8090 ``` **为缓慢/远程主机增加超时时间:** ``` ./port_scanner example.com -p 1-1024 -T 1000 ``` **降低线程数以进行更隐蔽的扫描:** ``` ./port_scanner 192.168.1.1 -p 1-1024 -t 20 ``` ## 🖥️ 输出示例 ``` Starting RustScan - Port Scanner A fast TCP connect scanner written in Rust Scanning 1024 port(s) on scanme.nmap.org (timeout: 500ms, threads: 100) Progress: 1024/1024 ports scanned... Nmap scan report for scanme.nmap.org Host is up (0.0023s latency). Not shown: 1020 closed ports, 2 filtered ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 9929/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 3.41 seconds — 4 open port(s) ``` ## 🔌 端口状态参考 | 状态 | 含义 | |-------|---------| | `open` | TCP 连接被接受 —— 服务正在监听 | | `closed` | 连接被主动拒绝(`Connection refused`) | | `filtered` | 无响应或发生错误 —— 可能有防火墙/过滤器拦截 | ## 🗂️ 已识别服务 该扫描器将 70 余个知名端口映射到服务名,包括: | 端口 | 服务 | 端口 | 服务 | |------|---------|------|---------| | 21 | ftp | 3306 | mysql | | 22 | ssh | 3389 | ms-wbb-server (RDP) | | 25 | smtp | 5432 | postgresql | | 53 | domain (DNS) | 5900 | vnc | | 80 | http | 6379 | redis | | 443 | https | 9200 | elasticsearch | | 1433 | ms-sql-s | 27017 | mongod | | 2375 | docker | 9092 | kafka | 未在列表中的端口将被标记为 `unknown`。 ## ⚠️ 法律免责声明 本工具仅供**授权网络测试**使用。未经明确许可扫描主机可能会违反当地法律和网络政策。作者不对任何滥用行为负责。 ## 🛠️ 项目结构 ``` Rust_Port_Scanner/ ├── main.rs # Full source — scanner logic, CLI parser, output formatter ├── Cargo.toml # Package manifest ├── port_scanner.exe # Pre-built Windows binary └── README.md ``` ## 📄 许可证 本项目为开源项目。有关详细信息,请参阅 [LICENSE](LICENSE)。
标签:Nmap替代, Qt框架, Rust, TCP扫描, 云存储安全, 可视化界面, 并发处理, 插件系统, 数据泄露防护, 数据统计, 服务识别, 漏洞赏金平台, 端口扫描, 端口状态, 网络安全, 网络扫描, 网络探测, 网络流量审计, 通知系统, 隐私保护