## 八、 端口说明和扫描顺序
除了所有前面讨论的扫描方法 Nmap 提供选项说明那些端口被扫描以及扫描是随机还是顺序进 行。 默认情况下,Nmap 用指定的协议对端口 1 到 1024 以及 nmap-services 文件中列出的更高 的端口在扫描。
`-p <port ranges>` (只扫描指定的端口)
该选项指明您想扫描的端口,覆盖默认值。 单个端口和用连字符表示的端口范围(如 1-1023)都可以。 范围的开始以及/或者结束值可以被省略, 分别导致 Nmap 使用 1 和 65535。所以您可以指定 -p-从端口 1 扫描到 65535。 如果您特别指定,也可以扫描端口 0。 对于 IP 协议扫描(-sO),该选项指定您希望扫描的协议号 (0-255)。
当既扫描 TCP 端口又扫描 UDP 端口时,您可以通过在端口号前加上 T: 或者 U:指定协议 协议限定符一直有效您直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25, 80,139,8080 将扫描 UDP 端口 53,111,和 137,同时扫描列出的 TCP 端口。注意,要既扫描 UDP 又扫描 TCP,您必须指定 -sU ,以及至少一个 TCP 扫描类型(如 -sS,-sF, 或者 -sT)。如果没有给定协议限定符, 端口号会被加到所有协议列表。
`-F` (快速 (有限的端口) 扫描)
在 nmap 的 nmap-services 文件中(对于-sO,是协议文件)指定您想要扫描的端口。 这比 扫描所有 65535 个端口快得多。 因为该列表包含如此多的 TCP 端口(1200 多),这和默认 的 TCP 扫描 scan (大约 1600 个端口)速度差别不是很大。如果您用--datadir 选项指定 您自己的 小小的 nmap-services 文件 ,差别会很惊人。
`-r` (不要按随机顺序扫描端口)
默认情况下,Nmap 按随机顺序扫描端口 (除了出于效率的考虑,常用的端口前移)。这种 随机化通常都是受欢迎的, 但您也可以指定-r 来顺序端口扫描。