3 个稳定版本

1.0.2 2023年3月23日
1.0.1 2023年3月15日
1.0.0 2023年3月14日

#6#nmap

MIT/Apache

25KB
300 代码行

这个应用是什么?

这是一个用 Rust 编写的端口扫描器的尝试,作为一项兴趣爱好项目。我认为这是一个很有趣的小工具,可以在编程经验更丰富的情况下练习编写 CLI 应用程序。

通过运行以下命令获取了常见端口集合

awk '$2~/tcp$/' /usr/share/nmap/nmap-services | sort -r -k3 | head -n 1000 | tr -s ' ' | cut -d '/' -f1 | sed 's/\S*\s*\(\S*\).*/\1,/'

如何安装此应用

如果已安装 cargo,只需运行以下命令即可安装此应用

cargo install rtcps

如果您使用的是基于 Debian 的系统,并且想要通过软件包管理器安装二进制文件,可以下载提供的 .deb 文件

如果您想从源代码构建二进制文件,可以运行 release.py

可用的二进制发布版本
Debian

如何使用此应用

您可以通过在项目目录中运行以下命令使用已安装的 Cargo 构建该应用程序。

cargo build --release

然后可以通过以下命令启动它

cargo run -- [ip_address_to_scan]

提供的 IP 地址可以是 Ipv4 或 Ipv6

默认情况下,如果仅提供 IP 地址,它将尝试扫描所有端口。您可以提供要扫描的端口范围,如下所示。

cargo run -- 127.0.0.1 1-65535

如果您只想扫描前 1000 个最常见的端口,可以运行

cargo run -- 127.0.0.1 -c

基准测试

如果您想运行基准测试,它由 Criterion.rs 支持,您只需运行

cargo bench

如果您想生成火焰图,请运行

cargo bench --bench all_port_bench -- --profile-time=5

不支持的目标

目前 Linux musl 支持不足,并且由于 clap 的 derive 功能在 musl 上不受支持,它无法编译。正在计划使用 musl 系统的备用 cli 结构。

许可

此应用程序根据 MIT/Apache 2.0 许可证授权

依赖项

~13–25MB
~351K SLoC