使用 nmap -sS 和 nmap -sT 扫描端口的速度?

The speed of port scan using nmap -sS and nmap -sT?

我正在使用 nmap 进行端口扫描以进行实验。目标 IP 是 192.168.199.201。然后我尝试以下两个命令:

使用-sT:

stevennl@stevennl:~$ sudo nmap -sT 192.168.199.201
Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-31 19:43 CST
Nmap scan report for 192.168.199.201
Host is up (0.00058s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 08:00:27:9E:4C:49 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

使用-sS:

stevennl@stevennl:~$ sudo nmap -sS 192.168.199.201
Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-31 19:43 CST
Nmap scan report for 192.168.199.201
Host is up (0.00040s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 08:00:27:9E:4C:49 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 1.81 seconds

我想知道为什么使用 -sS 参数时扫描需要更多时间。因为使用-sT需要完成TCP的三次握手,而使用-sS则不会建立TCP连接。所以使用-sS肯定更快,结果却相反,我错了吗?

有很多外部因素可以发挥作用。这里有一些想法:

  • Oracle VirtualBox 可能正在执行某种数据包转换或其他抽象,这些数据包转换或其他抽象可以更快地处理普通套接字调用,而不是 Nmap 用于 -sS.
  • 的原始套接字
  • 反向 DNS 查找在这两种情况下都失败了,所以在一种情况下失败的速度可能比另一种更快。使用 -n 跳过此步骤。
  • -sS 扫描期间,可能有其他东西使用了更多的网络带宽。 Nmap 通常表现良好,如果由于 link 饱和而丢弃数据包,它会后退并重试。
  • 您可能不幸将 libpcap 1.5 及更高版本与 Linux 3.19 或更早版本组合使用,这会导致数据包丢失和扫描速度变慢,但如果是这种情况,我预计会比这更慢。

还有很多其他可能的解释。时代真的很接近