1. 基本扫描和服务探测

nmap -sS -sV -p 80,443 目标IP
-sS          # 使用 TCP SYN 扫描,快速且隐蔽地扫描端口
-sV          # 开启服务版本探测,尝试识别目标端口上运行的服务版本
-p 80,443    # 指定端口扫描范围,仅扫描目标的 80 和 443 端口
目标IP       # 扫描的目标 IP 地址或主机名

2. 全端口扫描

nmap -p- 目标IP
-p-          # 扫描所有端口(从 1 到 65535)
目标IP       # 扫描的目标 IP 地址或主机名

3. 操作系统探测

nmap -O 目标IP
-O           # 启用操作系统检测,Nmap 会尝试识别目标主机的操作系统
目标IP       # 扫描的目标 IP 地址或主机名

4. 快速扫描常见端口

nmap -F 目标IP
-F           # 快速扫描,仅扫描 Nmap 默认的前 100 个最常见端口
目标IP       # 扫描的目标 IP 地址或主机名

5. Ping扫描主机发现

nmap -sn -PE 目标IP
-sn          # 禁用端口扫描,仅进行主机发现(Ping 扫描)
-PE          # 使用 ICMP Echo 请求(Ping)来探测主机是否在线
目标IP       # 扫描的目标 IP 地址或主机名

6. 指定输出格式

nmap -oN result.txt 目标IP
-oN result.txt  # 将扫描结果保存为普通文本格式到 result.txt 文件中
目标IP          # 扫描的目标 IP 地址或主机名

7. 隐蔽扫描

nmap -T0 -sS 目标IP
-T0           # 使用最慢的扫描速度 (极慢) 模拟正常流量,降低检测的可能性
-sS           # 使用 SYN 扫描,不完成 TCP 三次握手,隐蔽性较强
目标IP        # 扫描的目标 IP 地址或主机名

8. 扫描特定IP范围

nmap -sP 192.168.0.0/24
-sP          # Ping 扫描模式,仅检查主机是否在线(类似 -sn)
192.168.0.0/24 # 扫描的目标 IP 地址范围(整个子网)

9. 扫描多个目标

nmap -p 22,80,443 目标IP1 目标IP2
-p 22,80,443   # 指定要扫描的端口,仅扫描 22、80、443 端口
目标IP1 目标IP2  # 扫描多个目标 IP 地址或主机名

10. 禁用DNS解析

nmap -n 目标IP
-n           # 禁用 DNS 解析,Nmap 不会尝试将 IP 地址解析为主机名
目标IP       # 扫描的目标 IP 地址或主机名

11. 增强详细模式

nmap -v 目标IP
-v           # 增加详细信息级别,显示扫描的详细过程信息
目标IP       # 扫描的目标 IP 地址或主机名

12. 自定义目标端口

nmap -p 1-1000 目标IP
-p 1-1000    # 指定端口扫描范围,从 1 到 1000 的端口
目标IP       # 扫描的目标 IP 地址或主机名

13. UDP扫描

nmap -sU -p 53 目标IP
-sU          # 使用 UDP 扫描,检查指定端口上的 UDP 服务
-p 53        # 指定扫描的端口号,常用于 DNS 服务器的 UDP 端口
目标IP       # 扫描的目标 IP 地址或主机名

14. 路由追踪

nmap --traceroute 目标IP
--traceroute # 使用路由追踪,显示到目标主机的路径信息
目标IP       # 扫描的目标 IP 地址或主机名

15. 多种输出格式

nmap -oA results 目标IP
-oA results  # 将扫描结果保存为多种格式(如 .nmap、.xml、.gnmap 等),文件名为 results
目标IP       # 扫描的目标 IP 地址或主机名

16. 随机扫描顺序

nmap -r -p 80,443 目标IP
-r           # 使用随机顺序扫描端口,增加检测难度
-p 80,443    # 指定要扫描的端口,仅扫描 80 和 443 端口
目标IP       # 扫描的目标 IP 地址或主机名

17. 指定源端口

nmap --source-port 53 -p 80 目标IP
--source-port 53 # 使用指定的源端口(如 53)进行扫描,通常可绕过防火墙
-p 80            # 指定要扫描的端口,仅扫描 80 端口
目标IP           # 扫描的目标 IP 地址或主机名