lihongjie0209/rmap

GitHub: lihongjie0209/rmap

基于 Rust 的高性能网络扫描器,支持 ICMP 主机发现与 TCP 端口扫描,并提供交互式 TUI 界面。

Stars: 0 | Forks: 0

# rmap 一个使用 Rust 编写的高性能网络扫描器。支持 **ICMP 主机发现**和 **TCP 端口扫描**,并提供交互式 TUI。 ## 功能特性 - **ICMP 扫描** — 基于 ping 的主机发现 - **TCP 端口扫描** — 连接扫描,并显示 `Open / Closed / Filtered` 状态 - **高并发** — 通过 Tokio 实现异步 I/O,使用 Semaphore 控制并行度 - **交互式 TUI** — 树形结构表格,支持按主机展开/折叠 (`-o tui`) - **多种输出格式** — 纯文本、JSON (`-o json`)、交互式 TUI (`-o tui`) - **灵活的目标指定** — 单个 IP、CIDR (`/24`)、连字符范围 (`1.1.1.1-50`) - **Top-1000 端口** — 兼容 nmap 的默认端口列表 ## 安装 ### 预编译二进制文件 从 [Releases](../../releases) 页面下载适用于您平台的最新二进制文件。 ``` # Linux / macOS tar -xzf rmap--.tar.gz sudo mv rmap /usr/local/bin/ # Windows — 提取 rmap.exe 并添加到 PATH ``` ### 从源码构建 ``` cargo install --git https://github.com/lihongjie0209/rmap ``` 或者克隆并构建: ``` git clone https://github.com/lihongjie0209/rmap cd rmap cargo build --release ``` ## 用法 ``` rmap [OPTIONS] ... Arguments: ... IP, CIDR, or range (e.g. 192.168.1.1 10.0.0.0/24 10.0.0.1-50) Options: -p, --ports Port spec (e.g. 22,80,443,1-1024) [default: top1000] --icmp-only ICMP host discovery only, skip port scan --port-only Skip ICMP, scan ports on all targets -c, --concurrency Max concurrent probes [default: 1000] --timeout Per-probe timeout in ms [default: 1000] --all Show all ports including closed/filtered (default: open only) -o, --output plain | json | tui [default: plain] -h, --help Print help -V, --version Print version ``` ### 示例 ``` # 扫描单个主机的常见端口 sudo rmap 192.168.1.1 -p 22,80,443,3389 # 完整子网扫描 — ICMP 扫描然后 top-1000 端口 sudo rmap 192.168.1.0/24 # 仅扫描端口 (不需要 ICMP) rmap 10.0.0.1-20 --port-only -p 80,443,8080 # 可展开/折叠的交互式 TUI sudo rmap 192.168.1.0/24 -o tui # 用于脚本的 JSON 输出 rmap 10.0.0.1 --port-only -p 1-1024 -o json | jq '.[] | select(.ports[].status == "open")' # 使用降低的 timeout 进行快速扫描 sudo rmap 10.0.0.0/24 --icmp-only -c 512 --timeout 500 ``` ### TUI 快捷键 | 按键 | 动作 | |-----|--------| | `↑` / `↓` 或 `k` / `j` | 移动选择 | | `Enter` / `Space` | 展开 / 折叠主机 | | `→` / `l` | 展开并跳转到第一个端口 | | `←` / `h` | 折叠(从端口行返回到主机) | | `a` | 切换全部展开/折叠 | | `Home` / `End` | 跳转到第一行 / 最后一行 | | `PgUp` / `PgDn` | 翻页导航 | | `q` / `Esc` | 退出 | ## 性能说明 - 默认并发数:**1000** 个并发 futures(可通过 `-c` 调整) - ICMP 并发数上限为 256,以避免阻塞线程耗尽 - 对于大型子网(`/16` 及以上),建议使用 `--timeout 300 -c 2000` - Linux:如果在扫描多台主机的多个端口时,请提高 `ulimit -n` 的限制 ## 平台说明 | 平台 | ICMP | TCP | |----------|------|-----| | Linux | 需要 `sudo` 或 `CAP_NET_RAW` | 无需特殊权限 | | macOS | 需要 `sudo` | 无需特殊权限 | | Windows | 需要管理员权限 | 无需特殊权限 | ## 许可证 MIT
标签:AES-256, API安全, Awesome, CIDR, ICMP, JSON输出, Linux安全, nmap替代, Rust, Snort, TCP, Tokio, TUI, 二进制发布, 云存储安全, 可视化界面, 并发扫描, 开源工具, 异步I/O, 插件系统, 数据统计, 漏洞评估, 端口扫描, 系统管理, 网络安全, 网络扫描, 网络流量审计, 通知系统, 隐私保护