nmap检测端口状态的核心是发送探测包并分析响应,据此判断open、closed或filtered;默认扫描前1000端口,支持主机发现、快速扫描、指定端口、服务版本识别及防火墙绕过等多样化策略。

用 nmap 检测主机端口状态,核心是发送探测包并分析响应,从而判断端口是 open(开放)、closed(关闭)还是 filtered(被过滤)。它不依赖目标服务是否“正常运行”,而是基于网络层和传输层的应答行为做判断。
快速确认目标是否在线并查常见端口
这是最常用的第一步,适合日常排查或初步侦察:
- nmap 192.168.1.100 —— 默认扫描前 1000 个最常见端口,自动判断主机存活、端口状态和服务名
- nmap -sn 192.168.1.0/24 —— 只做主机发现(ping 扫描),不查端口,快速列出网段内所有在线设备
- nmap -F 192.168.1.100 —— 快速扫描(Fast scan),只扫 100 个高频端口,比默认更快
精准检查指定端口或范围
当你已知要验证的具体端口(如 Web 服务、数据库、SSH),避免全量扫描,提高效率:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- nmap -p 22,80,443 192.168.1.100 —— 批量检查多个关键端口,逗号分隔
- nmap -p 1-1000 192.168.1.100 —— 扫描连续端口范围
- nmap -p- 192.168.1.100 —— 扫描全部 65535 个端口(耗时较长,需 root 权限)
识别端口背后的服务与版本
仅知道“端口开放”不够,还需确认运行的是什么服务、什么版本,这对安全评估或故障定位很关键:
- nmap -sV 192.168.1.100 —— 探测开放端口对应的服务名称和软件版本(如 Apache 2.4.52、OpenSSH 8.9p1)
- nmap -sV -p 3306 192.168.1.100 —— 针对 MySQL 等特定端口做深度服务识别
- nmap -A 192.168.1.100 —— 启用综合扫描:含 OS 识别(-O)、服务版本(-sV)、脚本扫描(-sC)和 traceroute
绕过防火墙干扰,获取更真实结果
有些主机禁 ping 或拦截常规连接,导致误判为“down”或“filtered”。这时需调整扫描策略:
- nmap -Pn -p 80 192.168.1.100 —— 跳过主机发现,直接扫端口(适用于 ping 被屏蔽但端口实际可达的场景)
- nmap -sS -p 22 192.168.1.100 —— 使用 TCP SYN 半开扫描(隐蔽性高,需 root),比 -sT 更难被日志记录
- nmap -sU -p 53 192.168.1.100 —— 对 UDP 端口(如 DNS)单独验证,因 UDP 无连接机制,响应更不可靠,需配合 -sV 提高准确性










