一、前言:Nmap—— 网络安全必备扫描神器

Nmap(Network Mapper)是开源、免费、跨平台的网络扫描与安全审计工具,被誉为网安从业者的入门必备工具。核心功能:

  • 主机发现:定位局域网 / 公网存活主机
  • 端口扫描:探测目标开放端口、服务
  • 版本探测:识别服务版本、操作系统类型
  • 漏洞扫描:配合脚本检测高危漏洞(如永恒之蓝)
  • 运维审计:服务器端口巡检、内网资产梳理

无论是渗透测试、应急响应,还是服务器运维,Nmap 都是最常用的基础工具,本文带你从环境搭建实战扫描,一站式掌握 Nmap!


二、Nmap 环境搭建(全平台教程)

Nmap 支持 Windows、Linux、macOS、Kali 等所有主流系统,搭建步骤极简,零基础可快速完成。

2.1 Windows 系统搭建 Nmap

  1. 官网下载:https://nmap.org/download.html
  2. 选择 Windows 版本,下载 exe 安装包(自带 Npcap 抓包驱动,必须安装
  3. 双击安装,一路下一步,勾选安装 Npcap
  4. 安装完成后,打开CMDPowerShell,输入命令验证:

cmd

nmap --version

出现版本号即安装成功!

2.2 Linux 系统搭建 Nmap

Ubuntu/Debian/Kali

bash

# 更新软件源
sudo apt update
# 安装Nmap
sudo apt install nmap -y
# 验证安装
nmap --version
CentOS/RedHat

bash

# 安装Nmap
sudo yum install nmap -y
# 验证安装
nmap --version

2.3 Kali Linux(自带 Nmap,无需安装)

Kali 作为网安专用系统,默认预装 Nmap,直接打开终端使用即可:

bash

# 直接使用
nmap --version

:::tip📌 核心依赖:Nmap 必须依赖Npcap/WinPcap驱动实现抓包扫描,Windows 安装时务必勾选,Linux 会自动安装依赖!:::


三、Nmap 基础语法与核心参数

3.1 基础语法

bash

nmap [参数] 目标IP/域名/网段

3.2 高频核心参数(全网最实用)

参数 功能 实战场景
-sP 仅主机发现,不扫端口 快速查找局域网存活主机
-p 指定端口扫描 扫描指定端口(如 - p 80,443,3389)
-p- 扫描全部 65535 个端口 全面探测开放端口
-sV 服务版本探测 识别端口对应服务、版本
-O 操作系统探测 识别目标系统类型(Windows/Linux)
-A 全面扫描(端口 + 版本 + 系统 + 脚本) 深度探测目标信息
-T4 设置扫描速度(0-5) 常规扫描用 - T4,稳且快
--script 调用 Nmap 脚本 漏洞探测、服务枚举
-oN 保存扫描结果 导出扫描报告

四、Nmap 实战使用:5 大高频场景

4.1 场景 1:主机发现(查找存活设备)

快速扫描局域网内存活主机,不探测端口,速度最快:

bash

# 扫描单个IP
nmap -sP 192.168.1.100
# 扫描整个网段
nmap -sP 192.168.1.0/24

4.2 场景 2:基础端口扫描(最常用)

扫描默认常用端口

bash

nmap 192.168.1.100
扫描指定端口

bash

# 扫描80、445、3389端口
nmap -p 80,445,3389 192.168.1.100
扫描全部端口(全面探测)

bash

nmap -p- -T4 192.168.1.100

4.3 场景 3:服务版本 + 系统探测

bash

# 深度探测:端口+版本+系统
nmap -sV -O -T4 192.168.1.100

4.4 场景 4:漏洞扫描(配合 Nmap 脚本)

Nmap 自带漏洞扫描脚本,可直接检测高危漏洞(如 MS17-010 永恒之蓝):

bash

# 扫描永恒之蓝漏洞
nmap --script smb-vuln-ms17-010 192.168.1.100

4.5 场景 5:保存扫描结果

bash

# 将结果保存为txt文件
nmap -A 192.168.1.100 -oN nmap_scan.txt

五、6 类真实 Nmap 安全案例:攻击侧 + 防御侧

Nmap 既是安全人员的 “审计工具”,也是黑客的 “探路工具”,以下是企业运维中最常见的 Nmap 扫描引发的安全事件,附防御方案直接落地。

5.1 案例 1:SSH(22 端口)扫描 + 暴力破解入侵

🔴 攻击场景:黑客先用 Nmap 扫描公网服务器:nmap -p 22 --open 103.xx.xx.0/24,筛选出开放 22 端口的服务器,再用 Hydra 批量暴力破解弱口令(如 root/123456),攻破后植挖矿木马。📌 真实后果:某云服务器被入侵后 CPU 占用 100%,业务中断 3 天,挖矿产生的电费 + 业务损失超 8 万元。

✅ 防御方案:

  1. Nmap 定期自查:nmap -p 22 服务器IP,确认 22 端口仅对内网开放;
  2. 修改 SSH 默认端口:22→10022;
  3. 禁用 root 远程登录,开启密钥认证;
  4. 防火墙配置 IP 白名单,仅允许办公 IP 访问 22 端口。:::

5.2 案例 2:MySQL(3306 端口)未授权访问扫描

🔴 攻击场景:黑客用 Nmap 扫描:nmap -p 3306 --script mysql-empty-password 192.168.0.0/24,探测空密码 / 弱口令 MySQL 服务器,直接登录后篡改 / 删除数据库。

📌 真实后果:某电商网站数据库被篡改,订单数据丢失,赔偿用户损失超 20 万元。

✅ 防御方案:

  1. Nmap 每周扫描内网:nmap -p 3306 --script mysql-vuln* 内网网段,排查漏洞;
  2. MySQL 设置 16 位强密码,禁止空密码;
  3. 3306 端口仅允许应用服务器 IP 访问,禁止公网映射;
  4. 开启 MySQL 审计日志,记录异常登录。:::

5.3 案例 3:Redis(6379 端口)未授权访问扫描

🔴 攻击场景:黑客用 Nmap 扫描:nmap -p 6379 --script redis-info 47.xx.xx.0/24,发现开放 6379 端口且无密码的 Redis 服务器,写入公钥获取服务器 root 权限。

📌 真实后果:某游戏服务器 Redis 被入侵,黑客篡改游戏道具数据,造成经济损失超 50 万元。✅ 防御方案:

  1. Nmap 日常巡检:nmap -p 6379 服务器IP,关闭无用 Redis 服务;
  2. Redis 设置密码,禁用config等危险命令;
  3. 以普通用户运行 Redis,禁止 root 启动;
  4. 6379 端口仅对内网授权 IP 开放。:::

5.4 案例 4:RDP(3389 端口)暴露 + 勒索病毒攻击

🔴 攻击场景:黑客用 Nmap 扫描:nmap -p 3389 --open 202.xx.xx.0/24,定位开放 3389 端口的 Windows 服务器,暴力破解后植入勒索病毒。

📌 真实后果:某医院服务器被加密,HIS 系统瘫痪,患者无法挂号 / 缴费,直接损失超 10 万元。✅ 防御方案:

  1. Nmap 公网扫描自查:nmap -p 3389 公网IP,确认 3389 端口未暴露;
  2. 修改 RDP 默认端口,开启网络级别身份验证;
  3. 安装 RDP 暴力破解防护工具,限制失败登录次数;
  4. 定期备份服务器数据,应对勒索攻击。:::

5.5 案例 5:内网 Nmap 扫描泄露核心资产

🔴 攻击场景:黑客入侵内网普通电脑后,用 Nmap 全网段扫描:nmap -A 192.168.1.0/24 -oN asset.txt,获取内网服务器、数据库、存储设备等核心资产信息,横向渗透至核心服务器。

📌 真实后果:某企业内网被穿透,核心研发数据泄露,项目被迫暂停,损失超 100 万元。

✅ 防御方案:

  1. 部署内网入侵检测系统(IDS),监控 Nmap 大规模扫描行为;
  2. 内网划分 VLAN,普通网段无法访问核心服务器网段;
  3. 禁止内网主机安装 / 运行 Nmap 等扫描工具;
  4. 定期检查内网主机异常网络行为。:::

5.6 案例 6:恶意 Nmap 扫描被溯源(防御侧正向案例)

🟢 防御场景:某企业防火墙监测到大量 Nmap 扫描流量(特征:全端口扫描、高频 SYN 包),通过流量溯源定位攻击 IP,结合日志发现攻击源为境外服务器,立即封禁 IP 并上报网安部门。

📌 关键动作:

  1. 识别 Nmap 扫描特征:异常端口探测、SYN/FIN 扫描包、脚本扫描特征;
  2. 防火墙开启 “端口扫描防护” 规则,拦截高频扫描;
  3. 溯源攻击 IP,封禁恶意网段;
  4. 加固暴露端口,提升服务器防护等级。

✅ 可复用技巧:用 Nmap 模拟攻击扫描自身服务器:nmap -sS -T5 服务器IP,验证防火墙是否能拦截恶意扫描。:::

六、Nmap 高频命令速查表(按场景分类)

场景分类 命令 核心功能 使用场景
基础主机发现 nmap -sP 192.168.1.0/24 仅扫描存活主机,不扫端口 快速梳理内网存活设备
基础主机发现 nmap -sn 192.168.1.1-100 等价于 - sP,新版 Nmap 推荐用 - sn 避免 - sP 兼容问题
快速端口扫描 nmap 192.168.1.100 扫描默认 1000 个常用端口 快速排查目标开放端口
指定端口扫描 nmap -p 80,443,22,3389 192.168.1.100 扫描指定端口(逗号分隔) 针对性检测高危端口
连续端口扫描 nmap -p 1-65535 192.168.1.100 扫描 1-65535 全部端口 全面探测所有开放端口
全部端口扫描 nmap -p- 192.168.1.100 等价于 - p 1-65535,简写形式 节省命令长度,高频使用
服务版本探测 nmap -sV 192.168.1.100 识别端口对应服务 + 版本 排查低版本服务漏洞
系统类型探测 nmap -O 192.168.1.100 识别目标操作系统(Windows/Linux) 针对性选择攻击 / 加固方案
全面深度扫描 nmap -A 192.168.1.100 端口 + 版本 + 系统 + 脚本综合扫描 一次性获取目标全量信息
扫描速度优化 nmap -T4 192.168.1.100 设置扫描速度(0-5,T4 最常用) 平衡扫描速度与准确性
隐蔽扫描(SYN) nmap -sS 192.168.1.100 半开放扫描,减少被防火墙检测 规避简单的入侵检测系统
UDP 端口扫描 nmap -sU -p 53,161 192.168.1.100 扫描 UDP 端口(DNS/SNMP) 排查 UDP 服务漏洞
结果导出(文本) nmap -A 192.168.1.100 -oN scan.txt 保存扫描结果到 txt 文件 留存扫描报告 / 审计溯源
结果导出(JSON) nmap -A 192.168.1.100 -oJ scan.json 保存为 JSON 格式,便于解析 自动化运维 / 数据处理
批量 IP 扫描 nmap -iL ip列表.txt -oN result.txt 扫描文件中的批量 IP / 网段 大批量资产扫描

命令使用技巧

  • 速度优先级:-T0(最慢,隐蔽)< -T4(常规)< -T5(最快,易被检测)
  • 高频组合:nmap -T4 -sV -p- 目标IP(速度 + 版本 + 全端口,日常最常用)
  • 简写优化:-p- 替代 -p 1-65535-sn 替代 -sP(新版兼容)

七、Nmap 漏洞脚本速查表(按服务分类)

Nmap 自带数百个漏洞扫描脚本,存放在 /usr/share/nmap/scripts/(Linux/Kali),以下是企业运维中最常用的高危漏洞脚本

服务类型 脚本名称 核心功能 扫描命令示例
SSH(22) ssh-brute SSH 暴力破解(需密码字典) nmap --script ssh-brute -p 22 192.168.1.100
SSH(22) ssh-vuln-cve2018-15473 检测 SSH 权限提升漏洞 nmap --script ssh-vuln-cve2018-15473 -p 22 目标IP
SMB(445) smb-vuln-ms17-010 检测永恒之蓝漏洞(MS17-010) nmap --script smb-vuln-ms17-010 -p 445 目标IP
SMB(445) smb-brute SMB 服务暴力破解 nmap --script smb-brute -p 445 目标IP
MySQL(3306) mysql-empty-password 检测 MySQL 空密码 nmap --script mysql-empty-password -p 3306 目标IP
MySQL(3306) mysql-vuln-cve2021-27905 检测 MySQL 远程代码执行漏洞 nmap --script mysql-vuln-cve2021-27905 -p 3306 目标IP
Redis(6379) redis-info 探测 Redis 配置 / 版本信息 nmap --script redis-info -p 6379 目标IP
Redis(6379) redis-vuln-unauth 检测 Redis 未授权访问 nmap --script redis-vuln-unauth -p 6379 目标IP
RDP(3389) rdp-vuln-ms12-020 检测 RDP 远程代码执行漏洞 nmap --script rdp-vuln-ms12-020 -p 3389 目标IP
HTTP(80/443) http-vuln-cve2021-41773 检测 Apache 路径遍历漏洞 nmap --script http-vuln-cve2021-41773 -p 80 目标IP
HTTP(80/443) http-brute Web 登录暴力破解 nmap --script http-brute -p 80 目标IP
FTP(21) ftp-brute FTP 暴力破解 nmap --script ftp-brute -p 21 目标IP
FTP(21) ftp-vuln-cve2011-2523 检测 FTP 缓冲区溢出漏洞 nmap --script ftp-vuln-cve2011-2523 -p 21 目标IP
通用漏洞 vulners 检测目标 CVE 漏洞(需联网) nmap --script vulners -sV 目标IP

脚本使用技巧

  1. 批量脚本扫描:nmap --script "smb-vuln-*" -p 445 目标IP(扫描所有 SMB 漏洞脚本)
  2. 脚本参数自定义:nmap --script ssh-brute --script-args userdb=用户字典.txt,passdb=密码字典.txt -p 22 目标IP
  3. 查看脚本说明:nmap --script-help smb-vuln-ms17-010(了解脚本功能 / 参数)

八、速查表使用注意事项

🔴 核心提醒:

  1. 仅可对授权的目标使用(自有服务器 / 内网、客户授权测试);
  2. 禁止扫描公网未授权 IP,违反《网络安全法》《刑法》;
  3. 漏洞扫描脚本可能触发目标防御系统,测试前需提前沟通;
  4. Kali Linux 自带所有脚本,Windows 版 Nmap 需单独下载脚本库。:::

实战组合命令(直接复制)

bash

# 1. 内网资产快速梳理(存活主机+开放端口)
nmap -sn 192.168.1.0/24 -oN 内网资产.txt

# 2. 服务器高危端口+漏洞扫描
nmap -T4 -sV --script "vulners,smb-vuln-ms17-010,redis-vuln-unauth" -p 22,445,3389,6379 服务器IP -oN 漏洞扫描报告.txt

# 3. 全端口深度扫描(夜间执行,耗时较长)
nmap -T4 -sV -p- 目标IP -oN 全端口扫描.txt

九、Nmap 使用规范与法律声明

Nmap 是安全工具,但严禁用于非法扫描

  1. 仅可对自己拥有、获得授权的服务器 / 网段进行扫描;
  2. 禁止扫描政府、企业、个人未授权设备;
  3. 非法扫描违反《网络安全法》《刑法》第 285 条(非法侵入计算机信息系统罪),最高可处三年有期徒刑;
  4. 学习请使用虚拟机靶场、本地局域网进行测试,避免触碰法律红线。

十、Nmap 学习总结

  1. 环境搭建:全平台支持,Windows 装 Npcap,Linux 一键安装,Kali 自带;
  2. 核心逻辑:主机发现→端口扫描→版本探测→漏洞审计,循序渐进;
  3. 实战命令:日常扫描用-T4 -sV,全面扫描用-A -p-,漏洞扫描用--script
  4. 安全案例:SSH/MySQL/Redis/RDP 是高频攻击端口,需用 Nmap 定期自查 + 防火墙防护;
  5. 法律底线:仅扫描授权目标,非法扫描必追责。

Nmap 是网络安全的敲门砖,熟练掌握 Nmap 的 “扫描 + 防护” 逻辑,是学习渗透测试、服务器运维、内网安全的核心基础!


文末互动

觉得文章干货满满,点赞 + 收藏 + 关注,后续持续更新 Nmap 高级脚本编写、内网隐蔽扫描实战教程!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐