Skip to main content

Nmap

(一)基本介绍

nmap(Network Mapper)是一款开源的网络扫描和安全审计工具,可用于:

  • 主机发现
  • 开放端口扫描
  • 服务识别(如运行的 Web 服务器类型)
  • 操作系统检测
  • 网络拓扑分析

(二)安装 Nmap(Ubuntu)

1. 有 sudo 权限

打开终端,输入:

sudo apt update
sudo apt install nmap

2. 无 sudo 权限

如果你没有 sudo 权限,可以手动下载预编译的 nmap 可执行文件。

步骤如下:

# 创建一个目录保存 nmap
mkdir -p ~/tools/nmap
cd ~/tools/nmap

# 下载 nmap 的源码或预编译版本
wget https://nmap.org/dist/nmap-7.94.tar.bz2

# 解压
tar -xvjf nmap-7.94.tar.bz2
cd nmap-7.94

# 编译安装到本地路径,不需要 sudo
./configure --prefix=$HOME/tools/nmap/install
make
make install

使用时添加 PATH:

export PATH=$HOME/tools/nmap/install/bin:$PATH

你现在可以使用 nmap 命令了。



(三)常用用法示例

序号功能说明命令示例说明
1扫描一个主机的开放端口nmap 192.168.1.1默认扫描前 1000 个端口
2扫描多个 IP 或整个子网nmap 192.168.1.1 192.168.1.2 192.168.1.3 nmap 192.168.1.0/24扫描多个指定主机或整个子网
3扫描特定端口nmap -p 22,80,443 192.168.1.1指定扫描目标主机的特定端口
4操作系统与服务识别nmap -A 192.168.1.1包含服务识别、操作系统猜测、版本检测、脚本扫描等
5跳过 Ping 快速扫描nmap -Pn 192.168.1.1对不响应 ICMP 的主机进行扫描(如防火墙禁 Ping)
6使用漏洞检测脚本(NSE)nmap --script=vuln 192.168.1.1调用内置脚本引擎检测已知漏洞,部分脚本需 root 权限支持

Nmap 内置了很多扫描脚本,例如用于漏洞检测、安全检查等。

推荐命令合集

# 基础扫描
nmap 192.168.1.1

# 全端口 + 服务版本识别
nmap -p- -sV 192.168.1.1

# 操作系统检测
nmap -O 192.168.1.1

# 快速多目标扫描
nmap -T4 -F 192.168.1.0/24

# 漏洞扫描(需 root 权限)
nmap -sS --script vuln 192.168.1.1

示例:

C:\Users\28121>nmap 10.105.100.232
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-22 17:55 中国标准时间
Nmap scan report for 10.105.100.232
Host is up (0.017s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
443/tcp closed https
8080/tcp closed http-proxy
8081/tcp closed blackice-icecap
8082/tcp closed blackice-alerts
8083/tcp closed us-srv

这份 Nmap 扫描结果说明了目标主机 10.105.100.232 的网络服务和 1-1000 端口状态。我们逐条解释

  • Not shown: 994 filtered tcp ports (no-response)

    994 个 TCP 端口处于 “filtered” 状态,意味着:

    • 这些端口没有返回任何响应。
    • 通常是由于防火墙丢弃了探测包(不返回 ACK/RST)。
端口号协议状态服务名说明
22TCPopenssh该主机开启了 SSH 服务,可能用于远程登录。存在潜在安全访问入口。
443TCPclosedhttpsHTTPS 服务端口关闭,扫描到了但未开启服务。
8080TCPclosedhttp-proxy常用于 Web 应用或代理服务,端口存在但未启用。
8081TCPclosedblackice-icecap安全工具相关端口,未启用。
8082TCPclosedblackice-alerts同上。
8083TCPclosedus-srv一种较少见的服务端口,未启用。



(四)进阶功能

功能命令示例说明
扫描端口范围-p 1-65535全端口扫描
仅探测主机存活-sn 192.168.1.0/24Ping 扫描
操作系统检测-O猜测操作系统
使用 TCP 连接扫描-sTTCP connect() 扫描
使用 SYN 扫描-sS(需 root)更隐蔽的扫描方式
输出为文件-oN 输出.txt / -oX 输出.xml保存结果为文本或 XML 格式