Byte-Cell/NetScanner

GitHub: Byte-Cell/NetScanner

一款基于 Rust 语言开发的高效命令行网络扫描工具,专注于快速探测存活主机与开放端口。

Stars: 0 | Forks: 0

# NetScanner NetScanner 是一个用 Rust 编写的轻量级异步网络扫描器。 它用于执行主机发现,并在网络范围内进行并发 TCP 端口扫描。 该项目展示了使用 Tokio 进行异步执行的现代 Rust 网络技术。 ## 功能 * 基于 CIDR 的网络扫描 * 使用 TCP 探针进行主机发现 * 并发端口扫描 * 可配置的并发限制 * 常见端口的服务检测 * 使用 Tokio 进行异步任务执行 * 使用 Clap 进行 CLI 参数解析 ## 工作原理 NetScanner 使用**两阶段扫描过程**: ### 1. 主机发现 对目标网络中的每个 IP 地址的常见端口(80 和 443)进行探测,以确定主机是否可达。 ### 2. 端口扫描 仅在发现阶段有响应的主机上扫描端口,这大大减少了扫描时间。 ## 安装说明 克隆仓库: ``` git clone https://github.com/Byte-Cell/netscanner.git cd netscanner ``` 构建项目: ``` cargo build --release ``` 运行扫描器: ``` cargo run -- [options] ``` ## 用法 ``` cargo run -- -p --concurrency ``` ### 示例 扫描本地网络的常见 Web 端口: ``` cargo run -- 10.0.0.0/24 -p 80,443 ``` 扫描多个端口: ``` cargo run -- 10.0.0.0/24 -p 22,80,443,8080 ``` 扫描端口范围: ``` cargo run -- 10.0.0.0/24 -p 1-1000 ``` 限制并发: ``` cargo run -- 10.0.0.0/24 -p 22,80 --concurrency 50 ``` ## CLI 选项 | 选项 | 描述 | 默认值 | | ------------- | ---------------------------- | -------- | | network | 以 CIDR 表示法表示的目标网络 | 必填 | | -p, --ports | 要扫描的端口(逗号或范围) | 80 | | --concurrency | 最大并发扫描数 | 100 | ## 示例输出 ``` Host alive: 10.0.0.1 Host alive: 10.0.0.158 10.0.0.1:80 OPEN HTTP 10.0.0.1:443 OPEN HTTPS 10.0.0.158:22 OPEN SSH ``` ## 使用技术 * Rust * Tokio(异步运行时) * Clap(CLI 参数解析) * ipnetwork(CIDR 解析) ## 项目结构 ``` src/ └── main.rs ``` 主要组件包括: * CLI 参数解析 * 主机发现 * 并发端口扫描 * 服务检测 * 异步任务管理 ## 教育目的 构建此项目是为了探索: * 异步 Rust 编程 * 网络扫描技术 * 使用信号量进行并发控制 * 使用 channel 进行消息传递 ## 法律声明 此工具仅供**教育目的和授权的网络测试使用**。 未经许可,请勿扫描网络。 ## 未来改进 潜在的增强功能包括: * UDP 扫描 * banner grabbing * OS fingerprinting * JSON 输出 * 进度指示器 * IPv6 扫描
标签:Rust, Tokio, 主机发现, 命令行工具, 异步网络扫描, 插件系统, 数据泄露防护, 数据统计, 端口扫描, 网络探测, 网络流量审计, 通知系统