跳到主内容

一款以正确为本的端口扫描器

magi 通过 TCP 和 UDP 进行连接扫描。无需 root,不用原始套接字,绝不报告它并未真正建立过的端口状态。

或从源码 cargo install --path .

magitcp · udp
$ magi scanme.nmap.org -p 22,80,443 --banner
scanning scanme.nmap.org (45.33.32.156) — 3 ports, 512 at a time

2 open port(s):

45.33.32.156
     22/tcp  ssh    SSH-2.0-OpenSSH_6.6.1p1
     80/tcp  http
$ 

快速、专注,而且诚实

magi 保持小而锐利的范围:一款连接扫描器,只做少数几件事,把它们做得很快,绝不报告它并未真正建立过的端口状态。

01

快速且异步

借助 tokio 同时让数百个探测在途,并加以约束,即使是一个 /16 也能保持内存平稳。

02

TCP 与 UDP

在两者之上进行连接扫描,给出诚实的 open、closed 和 open|filtered 判定。

03

CIDR 与 JSON

扫描一台主机、一个 IP,或整个子网。把 --json 直接管道进 jq

04

它不会撒谎

文件描述符耗尽,或主机无法到达?这些端口会被报告为 untestable,绝不会被悄悄算作 closed。

常见问题

关于 magi 能做什么、不会做什么、以及如何运行它的一切。仍有困惑?在 GitHub 上提一个 issue。

提一个 issue

magi 是一款快速、异步的 TCP 和 UDP 端口扫描器。它进行连接扫描——在每个端口上完成一次正常的握手——因此在其范围之内,它只会报告它真正建立过的端口状态。没有原始数据包,不做猜测。