davestinhast/rust-port-scanner

GitHub: davestinhast/rust-port-scanner

基于 Rust 和 Tokio 的异步 TCP 端口扫描器,支持高并发连接和可选的 banner 读取,帮助用户快速发现目标主机开放的端口及服务信息。

Stars: 0 | Forks: 0

# rust-port-scanner 用 Rust 编写的并发端口扫描器。它使用 Tokio 来同时处理数百个连接而不阻塞程序,因此速度非常快。它还可以尝试读取在每个开放端口上运行的服务的 banner。 ## 工作原理 与其检查一个端口并等待响应后再检查下一个(速度慢),不如通过可配置的并发限制同时打开所有连接。 ``` ┌─ Puerto 22 → ABIERTO (SSH-2.0-OpenSSH) ├─ Puerto 80 → ABIERTO (HTTP/1.1 200 OK) Host objetivo ──────┼─ Puerto 443 → ABIERTO ├─ Puerto 81 → cerrado (timeout) └─ Puerto 82 → cerrado (timeout) ``` 内部的 semaphore 控制同时打开的连接数量,以免使网络或系统超载。 ## 安装说明 你需要先[安装 Rust](https://rustup.rs/)。 ``` git clone https://github.com/davestinhast/rust-port-scanner.git cd rust-port-scanner cargo build --release ``` 编译生成的二进制文件位于 `target/release/scanner`。 ## 用法 ``` # 扫描 host 的 1 到 1024 端口 ./scanner --host 192.168.1.1 # 带更短 timeout 的自定义范围 ./scanner --host ejemplo.com --start 1 --end 65535 --timeout-ms 300 # 带 banner 检测 ./scanner --host 192.168.1.1 --banner # 更多并发(更快,更激进) ./scanner --host 192.168.1.1 --concurrency 500 # 查看所有选项 ./scanner --help ``` **示例输出:** ``` Escaneando 192.168.1.1 (puertos 1-1024)... PUERTO BANNER -------------------------------------------------- 22 SSH-2.0-OpenSSH_8.9p1 80 HTTP/1.1 200 OK 443 abierto Total: 3 puertos abiertos. ``` ## 选项 | Flag | 描述 | 默认值 | |------|-------------|-------------------| | `--host` | 目标 IP 或 hostname | 必填 | | `--start` | 起始端口 | 1 | | `--end` | 结束端口 | 1024 | | `--timeout-ms` | 单个端口超时时间(毫秒) | 500 | | `--banner` | 尝试读取 banner | 禁用 | | `--concurrency` | 并发连接数 | 200 | ## 环境要求 - Rust 1.70 或更高版本 - 连接到目标的网络 - 扫描目标的权限(请勿扫描不属于你的目标) ## 许可证 MIT。
标签:DNS查询工具, Rust, 可视化界面, 异步编程, 插件系统, 端口扫描器, 系统编程, 网络工具, 网络流量审计, 通知系统