MarcosRuiz40/port-scanner-rust
GitHub: MarcosRuiz40/port-scanner-rust
一个基于 Rust 标准库从零实现的并发 TCP 端口扫描器,通过多线程和超时机制帮助理解底层网络扫描原理并完成基础端口探测。
Stars: 0 | Forks: 0
# 🔍 Rust 端口扫描器
完全从零开始使用 Rust 开发的并发端口扫描器,使用线程和 `TcpStream::connect_timeout` 执行带有超时控制的 TCP 连接。
## 项目简介:
该系统在接收到用户通过终端输入的所有数据后,会将其组织成具有不同功能的模块。其中包括通过多线程进行任务分配、在执行之间设置超时时间以防止资源过度消耗、支持定义端口范围(通过指定起始和结束端口),以及最后通过使用 MPSC 进行通信。
## 🚀 特性
- 通过多线程进行并发扫描
- 使用 timeout 避免连接阻塞
- 不依赖任何外部库 (std)
- 专注于底层网络学习
## 功能
- 多线程
- 可配置 timeout
- 端口范围扫描
- 服务检测(常见端口)
## 💡 解决的问题
本项目旨在理解底层网络扫描器的工作原理,通过在 Rust 中手动实现连接和并发逻辑。
## 🧠 工作原理?
程序将端口范围划分给不同的线程。
每个线程尝试与特定端口建立 TCP 连接:
- ✔ 如果连接成功 → 端口开放
- ❌ 如果失败 → 端口关闭或被过滤
## ⚙️ 使用
```
cargo run -- 192.168.0.1 1 1024 100 4
SALIDA:
[OPEN] 80 (HTTP)
[OPEN] 443 (HTTPS)
```
## 学到了什么
- Rust 中的并发
- 使用 Result 和 match 进行错误处理
- 基础 Networking
- Timeouts
## 未来改进
- 使用 Result 进行更好的错误处理
- 代码模块化
- 导出结果到文件
- 优化对大范围端口的支持
标签:Cargo, DNS枚举, MPSC, Rust, TcpStream, TCP协议, TCP连接, 低级网络, 可视化界面, 并发编程, 插件系统, 数据统计, 服务检测, 端口扫描, 系统编程, 网络安全, 网络安全工具, 网络扫描器, 网络流量审计, 网络编程, 超时控制, 通知系统, 隐私保护