刚接触网络安全、服务器运维或者内网排查时,很多人都会听到一个名字:Nmap。
它几乎算是网络扫描领域里最经典的工具之一。
功能不花哨,但非常实用:扫描主机、探测端口、识别服务、做基础资产盘点。
不过对新手来说,第一次看到一堆命令参数时,确实很容易发懵:
• -sn是干什么的?• -sV和-p-有什么区别?• 扫描结果里的 open、closed、filtered又分别代表什么?
这篇文章就不走“参数大全”的路线了,而是尽量用 新手最容易理解的方式,带你把 Nmap 的基础用法快速过一遍。
? Nmap 到底是什么?
Nmap 的全称是 Network Mapper,可以理解成一个“网络探测器”。
它最常见的用途有这几个:
• ? 发现哪些主机在线 • ? 检查开放了哪些端口 • ? 识别端口上跑着什么服务 • ?️ 辅助判断目标主机类型 • ? 做简单的网络资产盘点
说白了,Nmap 做的事情就是:
帮你看清一台主机或一段网络,对外到底暴露了什么。
这也是为什么它既常被运维使用,也常被安全人员使用。
⚠️ 先说最重要的一件事
不要扫描没有授权的目标。
学习 Nmap 的正确姿势是:
• 扫自己的电脑 • 扫自己的服务器 • 扫自己的局域网 • 扫合法的实验环境 • 扫公开允许练习的测试目标
这不仅是合规问题,也是一个很重要的职业习惯。
工具本身没有问题,关键在于怎么使用它。
?️ 先安装好 Nmap
不同系统安装方式不太一样。
Windows
直接下载安装包安装即可,一般也会同时安装抓包组件。
macOS
brew install nmapUbuntu / Debian
sudo apt update
sudo apt install nmapCentOS / RHEL
sudo yum install nmap安装完成后,先确认一下版本:
nmap -V只要能正常输出版本信息,就说明安装成功了。
? Nmap 命令其实没那么复杂
它最基本的格式就是:
nmap [选项] [目标]比如:
nmap 192.168.1.10
nmap scanme.nmap.org
nmap 192.168.1.0/24这里的“目标”可以是:
• 一个 IP • 一个域名 • 一个网段
所以你可以把它理解成:
告诉 Nmap:我要扫谁,以及怎么扫。
? 新手最应该先学会的几个命令
很多教程一上来就讲几十个参数,但其实没必要。
刚开始只要掌握下面这几个,就已经足够实用了。
1️⃣ 扫描一台主机的常见端口
nmap 192.168.1.10这是最基础的一条命令。
它会对目标主机做一个默认扫描,检查常见端口的开放情况。
比如你可能会看到这样的输出:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp closed https这表示:
• 22端口开着,通常是 SSH• 80端口开着,通常是 HTTP• 443端口目前没开
对于新手来说,这条命令最适合拿来建立直觉:
一台机器到底暴露了哪些“门”。
2️⃣ 查看一个网段里哪些主机在线
nmap -sn 192.168.1.0/24这个命令非常适合局域网排查。
它的意思是:
只看哪些主机在线,不做端口扫描。
比如你家里或办公室的局域网中,可能会扫出:
• 路由器 • 电脑 • 手机 • NAS • 打印机 • 摄像头
这个命令特别适合下面这些场景:
• 想知道网段里有多少设备在线 • 怀疑某台机器是不是还在 • 做内网资产初步摸底
对于初学者来说,-sn 是非常友好的一步,因为它结果简单,容易理解。
3️⃣ 扫描指定端口
nmap -p 22,80,443 192.168.1.10有时候你不关心全部端口,只想看某几个关键服务在不在。
比如:
• 22:SSH• 80:HTTP• 443:HTTPS• 3306:MySQL• 6379:Redis
这时候就可以用 -p 明确指定端口。
比如你只想确认一台 Web 服务器是不是正常提供服务,就可以这样扫:
nmap -p 80,443,8080,8443 192.168.1.10这个方式比全扫更快,也更适合实际排查。
4️⃣ 扫描全部端口
nmap -p 1-65535
或者
nmap -p- 192.168.1.10很多新手容易误会一件事:
直接执行 nmap 目标 并不是全端口扫描。
默认情况下,它通常只会扫一部分常见端口。
如果你想检查完整的 TCP 端口范围,就要用:
nmap -p-它的意思是从 1 到 65535 全部扫一遍。
这条命令适合:
• 怀疑服务跑在非标准端口上 • 想做更完整的端口摸排 • 做正式一点的资产检查
当然,它也会更慢一些。
5️⃣ 识别服务和版本
nmap -sV 192.168.1.10只知道端口开放,有时候还不够。
很多时候我们更关心的是:
• 这个端口跑的到底是什么服务? • 是 Apache 还是 Nginx? • 是 OpenSSH 还是别的 SSH 服务?
这时候就用 -sV。
它会进一步探测开放端口上的服务类型和版本信息。
你可能会看到这样的结果:
22/tcp open ssh OpenSSH
80/tcp open http Apache httpd
3306/tcp open mysql MySQL这条命令特别适合做:
• 服务器资产盘点 • 服务暴露面核查 • 排查端口对应的具体应用
对初学者来说,这是从“看到端口”走向“理解服务”的关键一步。
6️⃣ 保存扫描结果
很多人刚开始用 Nmap,经常扫完直接看终端,然后一关窗口就没了。
其实这是个很可惜的习惯。
保存结果非常重要,因为后面你可能要:
• 对比前后两次扫描差异 • 写报告 • 发给同事 • 留档复盘
最简单的保存方式是:
nmap -oN result.txt 192.168.1.10这样会把结果保存成普通文本文件。
如果你想一次保存成多种格式,可以这样:
nmap -oA myscan 192.168.1.10它会生成三份文件:
• myscan.nmap• myscan.xml• myscan.gnmap
对于新手来说,先会用 -oN 就够了。
养成保存扫描结果的习惯,会很有帮助。
? 看懂结果,比会敲命令更重要
Nmap 的命令不算难,真正容易让新手困惑的,往往是扫描结果。
最常见的几个状态是这些:
open
表示端口开放,目标主机上有服务在监听。
这通常意味着:
这个端口是可以连上的。
closed
表示端口可达,但当前没有服务监听。
简单理解就是:
门是关着的,但门确实在那里。
filtered
表示 Nmap 的探测被拦住了。
常见原因包括:
• 防火墙 • ACL • 安全设备过滤 • 网络策略限制
它不等于开放,也不等于关闭。
更准确地说,它是:
Nmap 没法确认。
这个状态是新手最容易误解的地方之一。
? 一个特别适合新手的上手流程
如果你刚开始学,可以按下面这个顺序练。
第一步:先找在线主机
nmap -sn 192.168.1.0/24先认识你的网络里都有哪些设备。
第二步:扫单台主机常见端口
nmap 192.168.1.10看这台设备暴露了哪些常见服务。
第三步:识别服务版本
nmap -sV 192.168.1.10进一步了解这些端口背后到底跑着什么。
第四步:做一次全端口扫描
nmap -p- 192.168.1.10检查是否有隐藏在非常见端口上的服务。
第五步:保存结果
nmap -sV -oN scan-result.txt 192.168.1.10留档、复盘、对比都会方便很多。
? 几个最常见的实际例子
场景一:看看家里局域网有哪些设备在线
nmap -sn 192.168.1.0/24这是最典型、也最适合新手练手的例子。
你会很直观地看到家里的网络里到底有多少设备在活动。
场景二:检查服务器开放了哪些服务
nmap -sV 192.168.1.100这条命令非常适合拿来做简单的服务器检查。
比如你可以快速知道:
• SSH 在不在 • Web 在不在 • 数据库端口有没有暴露 • 应用服务是不是跑在意料之外的端口
场景三:快速确认 Web 服务端口
nmap -p 80,443,8080,8443 192.168.1.100如果你主要关心网站相关服务,这样扫会更高效。
尤其是在排查下面这些问题时很有用:
• 网站为什么访问不了 • 服务到底跑在哪个端口 • 有没有备用 Web 端口暴露出来
? 新手最容易踩的几个坑
1. 以为默认就是全端口扫描
不是。
nmap 192.168.1.10这通常只是扫描常见端口。
要完整检查所有 TCP 端口,记得用:
nmap -p-2. 看到 filtered 就以为端口开着
这很常见,但其实不准确。
filtered 更像是在说:
“我被拦住了,判断不出来。”
它可能是防火墙,也可能是别的过滤策略,不应该直接理解成开放。
3. 一上来就扫很大范围
新手阶段不建议一开始就扫太大的网段,更不要去碰陌生公网主机。
先从下面这些目标开始更合适:
• 自己的电脑 • 自己的服务器 • 自己的局域网 • 实验环境
这样既安全,也更容易把结果和现实环境对应起来。
4. 只记命令,不理解结果
很多人学工具时容易陷入一个误区:
命令背得很多,但看到结果还是不知道意味着什么。
其实 Nmap 真正重要的是这三件事:
• 目标在不在线 • 端口开没开 • 开着的端口跑的是什么服务
把这三点理解透,比多记几十个参数更重要。
? 一份适合收藏的 Nmap 入门速查表
nmap 目标 | |
nmap -sn 网段 | |
nmap -p 22,80,443 目标 | |
nmap -p- 目标 | |
nmap -sV 目标 | |
nmap -oN result.txt 目标 |
✅ 最后总结一下
如果你刚开始学 Nmap,真的不用追求“会很多参数”。
先把下面这几件事搞懂,就已经算是入门了:
1. 会找在线主机 2. 会看开放端口 3. 会识别服务 4. 会保存扫描结果 5. 会正确理解 open / closed / filtered
Nmap 的价值不在于“像黑客一样敲很多高级命令”,而在于:
你能不能借助它更清楚地理解一台机器的网络暴露面。
这才是它最核心、也最实用的地方。
? 适合新手直接练习的命令合集
nmap scanme.nmap.org
nmap -sn 192.168.1.0/24
nmap 192.168.1.10
nmap -p 22,80,443 192.168.1.10
nmap -p- 192.168.1.10
nmap -sV 192.168.1.10
nmap -oN result.txt 192.168.1.10