kazee72/portygon

GitHub: kazee72/portygon

一款用 Rust 编写的快速异步端口扫描工具,帮助安全人员和运维人员高效发现目标主机开放端口。

Stars: 1 | Forks: 0

# Portygon 一个使用 Rust 编写的快速、轻量级 TCP 端口扫描器。 ## 功能 - 异步扫描,支持高达 100 个并发连接 - Banner 抓取 — 检测开放端口上的服务信息 - HTTP 感知的 banner 解析 — 提取状态行和 Server 头 - DNS 解析 — 接受主机名或 IP 地址作为目标 - 隐蔽模式 — 随机延迟(2–5秒)的顺序扫描 - JSON 输出,适用于脚本和自动化 ## 安装 ``` git clone https://github.com/kazee72/portygon.git cd portygon cargo build --release ``` 二进制文件将位于 `target/release/portygon`。 ## 用法 ``` portygon [OPTIONS] ``` ### 选项 | 标志 | 默认值 | 描述 | |---|---|---| | `-p, --ports` | `1-1024` | 要扫描的端口 — 单个、范围或逗号分隔 | | `-s, --stealth` | 关闭 | 随机延迟 2–5秒 的顺序扫描 | | `-j, --json` | 关闭 | 以 JSON 格式输出结果 | | `-V, --version` | — | 打印版本信息 | ### 示例 扫描主机的默认端口 (1–1024): ``` portygon 192.168.1.1 ``` 扫描指定端口: ``` portygon 192.168.1.1 -p 22,80,443 ``` 扫描端口范围: ``` portygon 192.168.1.1 -p 1-10000 ``` 范围和单个端口的混合: ``` portygon 192.168.1.1 -p 22,80,443,8000-8080 ``` 使用主机名: ``` portygon example.com -p 80,443 ``` JSON 输出: ``` portygon 192.168.1.1 -p 1-1024 --json ``` 隐蔽模式: ``` portygon 192.168.1.1 -p 80,443 --stealth ``` ### 示例输出 ``` [Open Ports] 22: SSH-2.0-OpenSSH_8.9 80: HTTP/1.1 200 OK | Server: nginx/1.18.0 443: HTTP/1.1 200 OK | Server: nginx/1.18.0 ``` JSON 模式: ``` { "target": "192.168.1.1", "ports_scanned": 1024, "open_ports": [ { "port": 22, "banner": "SSH-2.0-OpenSSH_8.9" }, { "port": 80, "banner": "HTTP/1.1 200 OK | Server: nginx/1.18.0" } ] } ``` ## 运行测试 ``` cargo test ``` 慢速测试(隐蔽模式、大范围)被标记为 `#[ignore]`,可以显式运行: ``` cargo test -- --ignored ```
标签:Rust, 命令行工具, 安全工具, 异步编程, 插件系统, 数据统计, 端口扫描, 网络流量审计, 通知系统