nmap是网络安全领域中最常用、最强大的端口扫描工具之一,由Gordon Lyon(化名Fyodor)开发,它不仅可以扫描目标主机的开放端口,还能检测服务版本、操作系统类型、网络拓扑等信息,是渗透测试、网络管理和安全审计的必备工具,本文将详细介绍nmap扫描端口的核心命令、参数用法及实际应用场景,帮助读者全面掌握这一工具。

nmap基础扫描命令
nmap的基本语法结构为nmap [选项] [扫描目标],其中扫描目标可以是IP地址、域名、IP范围或CIDR格式的网段,以下是常用的基础扫描命令:
扫描单个目标
nmap 192.168.1.1
该命令会扫描目标主机的1000个常用TCP端口,并显示开放端口的状态。
扫描多个目标
nmap 192.168.1.1 192.168.1.2 192.168.1.3
或使用逗号分隔:
nmap 192.168.1.1,2,3
扫描网段
nmap 192.168.1.0/24
该命令会扫描整个C类网段的所有主机。

扫描指定端口
nmap -p 22,80,443 192.168.1.1
使用-p参数可以指定要扫描的端口范围或具体端口,例如-p 1-100表示扫描1到100号端口。
nmap高级扫描参数
nmap提供了丰富的参数,支持多种扫描方式,以满足不同场景的需求。
扫描类型
- TCP SYN扫描(半开扫描):
-sS,默认扫描方式,发送SYN包但不完成三次握手,隐蔽性较高。 - TCP Connect扫描:
-sT,完整的TCP连接扫描,适合非root用户使用。 - UDP扫描:
-sU,扫描UDP端口,速度较慢且可能产生大量误报。 - FIN扫描:
-sF,发送FIN包探测端口,适用于绕过简单的防火墙。 - NULL扫描:
-sN,发送不含标志位的包,适用于某些特殊环境。 - Xmas扫描:
-sX,发送FIN、PSH和URG标志位,类似FIN扫描。
扫描速度控制
-T<0-5>:设置扫描速度,T0(最慢)到T5(最快),默认为T3。--min-rate和--max-rate:控制每秒发送的数据包数量,例如--min-rate 100表示每秒至少发送100个包。
端口状态与版本检测
-sV:检测开放端口上运行的服务版本信息。--version-intensity <0-9>:设置版本检测强度,默认为7,数值越高检测越准确。-O:检测目标主机的操作系统类型。-A:启用高级检测,包括操作系统检测、版本检测、脚本扫描等。
输出格式
-oN:保存为普通文本格式。-oX:保存为XML格式,适合后续处理。-oG:保存为Grepable格式,便于命令行提取。-oA:同时保存为普通文本、XML和Grepable格式。
nmap扫描结果解读
nmap的扫描结果会根据端口状态显示不同的标识:
- OPEN:端口开放,服务正在监听。
- CLOSED:端口关闭,无服务监听,但目标可达。
- FILTERED:端口被防火墙或设备过滤,无法确定状态。
- UNFILTERED:端口可访问,但无法确定是否开放(如UDP扫描)。
扫描结果可能如下:

PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open httpsnmap实际应用场景
网络资产发现
通过扫描内网网段,快速识别存活主机及其开放端口,
nmap -sP 192.168.1.0/24
-sP为ping扫描,仅检测主机是否存活。
服务漏洞检测
结合-sV和--script参数,检测服务的已知漏洞:
nmap -sV --script vuln 192.168.1.1
--script vuln会调用nmap的漏洞检测脚本。
防火墙规则探测
使用-sA(ACK扫描)或-sF(FIN扫描)探测防火墙是否过滤特定端口:
nmap -sA 192.168.1.1
nmap扫描命令示例表格
以下是常用nmap扫描命令的总结:
| 命令 | 功能描述 | 示例 |
|---|---|---|
nmap [目标] | 基础TCP扫描 | nmap 192.168.1.1 |
nmap -p [端口] [目标] | 扫描指定端口 | nmap -p 80,443 192.168.1.1 |
nmap -sS [目标] | TCP SYN扫描 | nmap -sS 192.168.1.1 |
nmap -sU [目标] | UDP扫描 | nmap -sU 192.168.1.1 |
nmap -sV [目标] | 版本检测 | nmap -sV 192.168.1.1 |
nmap -O [目标] | 操作系统检测 | nmap -O 192.168.1.1 |
nmap -A [目标] | 高级扫描 | nmap -A 192.168.1.1 |
nmap -T4 [目标] | 快速扫描 | nmap -T4 192.168.1.1 |
nmap -oN [文件] [目标] | 保存为文本 | nmap -oN result.txt 192.168.1.1 |
nmap -sP [目标] | Ping扫描 | nmap -sP 192.168.1.0/24 |
相关问答FAQs
Q1: nmap扫描时如何避免被目标主机或防火墙检测?
A: 可以使用以下方法提高扫描隐蔽性:
- 使用
-sS(SYN扫描)代替-sT(TCP Connect扫描),因为SYN扫描不完成三次握手,更难被日志记录。 - 降低扫描速度,例如
-T2或--min-rate 10,减少数据包发送频率。 - 使用
-f参数分片发送数据包,或--mtu设置分片大小,绕过简单的IDS检测。 - 结合
-D RND:10参数伪造随机源IP,混淆扫描来源。
Q2: nmap扫描显示“FILTERED”状态是什么意思?如何进一步确认?
A: “FILTERED”表示nmap无法确定端口状态,通常是因为目标主机被防火墙、IDS/IPS或其他网络设备过滤,进一步确认的方法包括:
- 使用不同的扫描方式,如
-sA(ACK扫描)或-sU(UDP扫描),观察结果是否变化。 - 调整扫描参数,如
--packet-trace跟踪数据包发送情况,或--reason显示过滤原因。 - 结合其他工具(如masscan)进行大范围扫描,对比结果差异。
- 通过
-Pn参数跳过主机发现阶段,直接扫描端口,避免因主机不可达导致的误判。
通过合理使用nmap的命令和参数,可以高效完成端口扫描任务,同时需注意遵守法律法规,仅在授权范围内进行扫描。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/475951.html<
