游乐游手机版
首页/网络安全/文章详情

Nmap安装教程与基本用法入门指南

时间:2026-08-18 06:32
{ "position ":0, "title ": "介绍 ", "layout ": "doc-fullscreen ", "text ": " 介绍nn在这个实验中,你将学习强大的网络扫描和安全审计工具 Nmap 的安装和基本使用方法。Nmap 也被称为 Network Mapper,是一款开源工具,被系统管理员和
{"position":0,"title":"介绍","layout":"doc-fullscreen","text":"## 介绍nn在这个实验中,你将学习强大的网络扫描和安全审计工具 Nmap 的安装和基本使用方法。Nmap 也被称为 Network Mapper,是一款开源工具,被系统管理员和安全专家广泛用于查找网络中的主机、服务和漏洞。nn本实验将指导你完成 Nmap 的安装、设置用于扫描的本地服务,并进行基本扫描,以了解 Nmap 的功能。n","need_verify":false,"has_solution":false},{"position":1,"title":"安装 Nmap","layout":"doc-workbench-split","text":"## 安装 Nmapnn在这一步中,我们将指导你在 Ubuntu Linux 系统上安装 Nmap。Nmap 是一款强大的网络扫描工具,广泛应用于网络安全领域,可用于网络发现和安全审计等任务。它可以在 Ubuntu 的默认软件源中找到,这意味着安装过程非常简单。nn首先,你需要打开终端。终端是一个基于文本的界面,允许你通过输入命令与系统进行交互。默认情况下,你应该位于 `/home/labex/project` 目录。如果你不在该目录下,可以使用以下命令导航到该目录。此命令会将你当前的工作目录更改为 `/home/labex/project`。nn```bashncd /home/labex/projectn```nn![Nmap 安装的终端界面](https://file.labex.io/namespace/33fa8aba-d546-42e9-9692-64968aeaf0cc/cybersecurity/nmap_installation/lab-nmap-cyber-fortress-quest/zh/../assets/screenshot-20240913-MOAyQmDe@2x.png)nn现在你已进入正确的目录,接下来需要更新软件包列表并安装 Nmap。软件包列表包含了 Ubuntu 软件源中所有可用软件的信息。更新列表可确保你安装的是 Nmap 的最新版本。nn```bashnsudo apt updatensudo apt install nmap -yn```nn`sudo` 命令用于以管理员权限运行命令。由于安装软件需要管理员权限,因此你需要使用 `sudo`。`-y` 标志与 `apt install` 命令一起使用,它会在安装过程中自动对所有提示回答“yes”,这样你就无需手动确认每一步操作。nn安装完成后,重要的是要验证 Nmap 是否已正确安装。你可以通过检查其版本来进行验证。`nmap` 命令的 `--version` 选项会显示 Nmap 的版本信息。nn```bashnnmap --versionn```nn你应该会看到类似以下的输出(注意,你的版本号可能不同):nn```plaintextnNmap version 7.80 ( https://nmap.org )nPlatform: x86_64-pc-linux-gnunCompiled with: liblua-5.3.3 openssl-1.1.1f nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6nCompiled without:nA vailable nsock engines: epoll poll selectn```nn此输出确认 Nmap 已安装在你的系统上。它还提供了 Nmap 的版本信息以及编译选项,这些信息对于故障排除或了解已安装 Nmap 这个功能确实很实用。 在开始用 Nmap 扫描之前,需要先把一个本地目标服务跑起来,这样才能更直观地验证 Nmap 的扫描效果。这里使用 Python 内置的 `http.server` 模块搭一个简单的 HTTP 服务器。它的好处很明显:上手快、配置少,拿来做基础测试再合适不过。 先为这个 HTTP 服务器准备一个新目录。说白了,就是先建一个专门存放服务器相关文件的文件夹。 ```bash mkdir -p /home/labex/project/http-server cd /home/labex/project/http-server ``` 其中,`mkdir -p` 会在指定路径下创建名为 `http-server` 的目录;如果中间有不存在的父目录,`-p` 选项也会一并补齐。接着,`cd` 会把当前工作目录切换到刚刚创建好的 `http-server` 目录。 接下来,创建一个简单的 HTML 文件,让这个服务器对外提供内容。HTML 本身就是构建网页的标准标记语言。 ```bash echo "

Welcome to the Nmap Lab

" > index.htmln```nn此命令使用 `echo` 命令将 HTML 代码打印到终端,然后将该输出重定向到名为 `index.html` 的文件。因此,我们创建了一个具有基本 HTML 结构和欢迎消息的文件。nn接下来,我们将启动 Python HTTP 服务器。nn```bashnpython3 -m http.server 8000n```nn此命令使用 `python3` 解释器将 `http.server` 模块作为脚本运行。 `-m` 选项告诉 Python 将该模块作为脚本运行。我们指定端口 8000,这意味着我们的服务器将监听此端口上的传入请求。nn![打开一个新的终端标签页或窗口以继续](https://file.labex.io/namespace/33fa8aba-d546-42e9-9692-64968aeaf0cc/cybersecurity/nmap_installation/lab-nmap-cyber-fortress-quest/zh/../assets/20250319-09-04-33-KH1JIt3I.png)nn**重要提示**:打开一个新的终端标签页或窗口以继续。保持 HTTP 服务器在此终端中运行,并在本「实验」(Lab)中使用新终端执行所有后续 Nmap 命令。这确保了 HTTP 服务器在你执行扫描时保持活动状态。nn要验证服务器是否正在运行,你可以在新终端中使用 `curl` 命令。 `curl` 是一个命令行工具,用于从服务器传输数据或将数据传输到服务器。nn```bashncurl https://localhost:8000n```nn当你运行此命令时,`curl` 会向运行在 `localhost`(指你自己的计算机)的 8000 端口上的 HTTP 服务器发送请求。如果服务器运行正常,你应该会看到我们之前创建的 HTML 内容。nn```htmln127.0.0.1 - - [13/Sep/2024 15:24:21] "GET / HTTP/1.1" 200 -nn n

Welcome to the Nmap Lab

n nn```nn此输出表明服务器已收到请求,已成功处理该请求(由 `200` 状态代码指示),并返回了 `index.html` 文件的 HTML 内容。n","need_verify":true,"has_solution":false},{"position":3,"title":"Nmap 基础扫描","layout":"doc-workbench-split","text":"## Nmap 基础扫描nn既然我们已经成功安装了 Nmap 并设置了本地服务,现在是时候开始进行一些基本扫描了。这将帮助你了解 Nmap 的工作原理以及它能提供什么样的信息。nn首先,我们将对本地 HTTP 服务器执行简单的 TCP 连接扫描。TCP 连接扫描是 Nmap 中一种基本的扫描类型。它尝试与目标端口建立完整的 TCP 连接。如果连接成功,则意味着该端口是开放的。nn以下是执行此扫描的命令:nn```bashnnmap -sT -p 8000 localhostn```nn让我们来拆解一下这个命令:nn- `-sT` 是一个选项,用于指定 TCP 连接扫描。这告诉 Nmap 使用 TCP 连接方法来检查端口的状态。n- `-p 8000` 表示我们希望 Nmap 仅扫描端口 8000。如果需要,你可以更改这个数字来扫描其他端口。n- `localhost` 是我们扫描的目标。它指的是运行服务的本地机器。nn运行此命令后,你应该会看到类似以下的输出:nn```plaintextnStarting Nmap 7.80 ( https://nmap.org ) at 2024-09-13 15:27 CSTnNmap scan report for localhost (127.0.0.1)nHost is up (0.00011s latency).nOther addresses for localhost (not scanned): ::1nnPORT STATE SERVICEn8000/tcp open http-altnnNmap done: 1 IP address (1 host up) scanned in 0.06 secondsn```nn此输出显示端口 8000 是开放的,并且正在运行一个 HTTP 服务。`STATE` 列指示端口的状态,在这种情况下是 `open`。`SERVICE` 列让我们大致了解该端口上可能运行的服务类型。nn现在,让我们进行更详细的扫描。有时,仅仅知道某个端口是开放的还不够。我们可能想了解更多关于该端口上运行的服务的信息,例如其版本。nn以下是进行更详细扫描的命令:nn```bashnnmap -sV -p 8000 localhostn```nn`-sV` 选项用于告诉 Nmap 对开放端口进行探测,以确定服务/版本信息。这意味着 Nmap 将尝试查明开放端口上运行的具体软件及其版本。nn运行此命令后,你应该会看到类似以下的输出:nn```plaintextnStarting Nmap 7.80 ( https://nmap.org ) at 2024-09-13 15:27 CSTnNmap scan report for localhost (127.0.0.1)nHost is up (0.00011s latency).nOther addresses for localhost (not scanned): ::1nnPORT STATE SERVICE VERSIONn8000/tcp open http SimpleHTTPServer 0.6 (Python 3.10.12)nnService detection performed. Please report any incorrect results at https://nmap.org/submit/ .nNmap done: 1 IP address (1 host up) scanned in 6.48 secondsn```nn此输出提供了关于端口 8000 上运行的服务的更详细信息。它告诉我们这是一个 Python SimpleHTTPServer,甚至还给出了版本号。nn你可以在启动 Python HTTP 服务器的终端日志中查看 Nmap 请求。这对于调试或进一步分析可能会很有用。n","need_verify":true,"has_solution":false},{"position":4,"title":"扫描多个端口","layout":"doc-workbench-split","text":"## 扫描多个端口nn在现实场景中,你经常需要扫描多个端口,甚至是整个端口范围。让我们来探讨如何使用 Nmap 完成这项任务。nn在进行网络扫描时,你可能希望一次性检查多个端口。这很有用,因为不同的服务运行在不同的端口上,通过扫描多个端口,你可以全面了解目标上可用的服务。nn首先,让我们扫描本地主机(localhost)上最常用的 1000 个端口。本地主机指的是你当前正在使用的设备,其 IP 地址为 127.0.0.1。扫描最常用的 1000 个端口是快速了解本地机器上运行的服务的一种方式。nn```bashnnmap localhostn```nn运行此命令后,你会看到类似以下的输出:nn```plaintextnStarting Nmap 7.80 ( https://nmap.org ) at 2024-09-13 15:29 CSTnNmap scan report for localhost (127.0.0.1)nHost is up (0.00016s latency).nOther addresses for localhost (not scanned): ::1nNot shown: 997 closed portsnPORT STATE SERVICEn22/tcp open sshn3001/tcp open nessusn8000/tcp open http-altnnNmap done: 1 IP address (1 host up) scanned in 0.08 secondsn```nn这个命令在没有指定任何端口的情况下,会扫描最常用的 1000 个端口。你会看到一个包含开放、关闭和被过滤端口的列表。输出显示了端口号、端口状态(开放、关闭或被过滤)以及相关的服务。nn现在,让我们扫描所有 65535 个端口。在 TCP/IP 协议中,总共有 65535 个可用端口。扫描所有端口可以让你全面了解目标上运行的服务,但这需要更多时间。nn```bashnnmap -p- localhostn```nn`-p-` 选项告诉 Nmap 扫描从 1 到 65535 的所有端口。这个扫描完成所需的时间会更长,因为它必须检查每一个端口。nn最后,让我们扫描特定范围的端口。有时,你可能大致知道某个特定服务可能运行在哪些端口上,并且只想扫描这些端口。nn```bashnnmap -p 1-1000 localhostn```nn这个命令扫描 1 到 1000 的端口。通过指定端口范围,你可以将扫描重点放在与你需求最相关的端口上。n","need_verify":true,"has_solution":false},{"position":5,"title":"输出格式与保存结果","layout":"doc-workbench-split","text":"## 输出格式与保存结果nnNmap Nmap 支持多种输出格式,而且每一种都对应着不同的使用场景。搞清楚这些格式的区别,以及扫描结果该怎么保存,后续无论是做分析还是做分享,都会方便很多。下面就从几个常见格式入手,看看它们分别怎么用,以及结果该如何落盘保存。 先来看最常用的一种:普通格式。它本质上是面向人的可读文本,结果展示直观,读起来也最省事。如果要把扫描结果保存成这种格式,可以使用下面这条命令: ```bash nmap -oN normal_output.txt localhost ``` 这里的 `-oN` 参数表示让 Nmap 以普通格式输出结果。`normal_output.txt` 是保存结果的文件名,`localhost` 则是扫描目标,也就是当前本机。 接着再看 XML 格式。XML,也就是可扩展标记语言,是一种非常常见的数据存储与交换格式。它的优势在于结构清晰,既方便脚本解析,也便于导入其他工具继续处理。如果希望把输出保存为 XML 格式,可以使用这条命令: ```bash nmap -oX xml_output.xml localhost ``` 在这条命令里,`-oX` 的作用就是告诉 Nmap 按 XML 格式保存输出,`xml_output.xml` 则是对应的结果文件。 最后一种是可 grep 格式。顾名思义,这种格式就是为了方便配合 `grep` 之类的工具进行解析。`grep` 是类 Unix 系统里非常实用的文本搜索工具,所以当需要从扫描结果中快速筛出某些特定信息时,这种格式就很有价值。保存为可 grep 格式时,可以使用下面的命令: ```bash nmap -oG grepable_output.txt localhost ``` 其中,`-oG` 用来指定可 grep 格式输出,`grepable_output.txt` 是存储结果的文件。nn将结果保存为不同格式后,你可能想查看这些文件的内容。你可以使用 `cat` 命令来显示文本文件的内容。例如,要查看普通格式的输出文件,你可以使用以下命令:nn```bashncat normal_output.txtn```nn这将把 `normal_output.txt` 文件的内容打印到终端,让你可以查看扫描结果。n","need_verify":true,"has_solution":false},{"position":6,"title":"总结","layout":"doc-fullscreen","text":"## 总结nn在本次实验中,你学习了强大的网络扫描和安全审计工具 Nmap 的基础知识。首先,你在 Ubuntu Linux 系统上安装了 Nmap 并验证了安装情况。接着,你搭建了一个本地 HTTP 服务器作为扫描目标,展示了如何创建一个简单的测试服务。nn你还探索了各种扫描技术,从基本的端口扫描到详细的服务版本检测。你学会了扫描系统上的特定端口、端口范围以及全部 65535 个端口,这对于了解网络和发现潜在漏洞至关重要。最后,你了解了 Nmap 的输出选项,例如将结果保存为普通文本、XML 和可 grep 格式,这些对于文档记录和进一步分析非常重要。nn本次实验为你提供了使用 Nmap 的实践经验,为更高级的网络扫描和安全审计奠定了基础。请记住,要在获得适当授权的情况下负责任地使用 Nmap。n","need_verify":false,"has_solution":false}
来源:https://labex.io/zh/tutorials/nmap-learn-nmap-installation-and-basic-usage-415924
上一篇使用冒号分隔凭证进行攻击风险与防范方法 下一篇Nmap安装教程及端口扫描使用方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
DDoS攻击的三大主要形式:原理、特征与防御重点
网络安全 · 2026-08-31

DDoS攻击的三大主要形式:原理、特征与防御重点

DDoS攻击主要分为基于流量(Volume)、基于应用层(Application)和基于协议(Protocol)三种形式。流量型攻击通过海量数据淹没带宽;应用层攻击利用Web漏洞耗尽服务器资源;协议层攻击则利用TCP握手缺陷导致系统挂起。了解这些原理是制定针对性防御策略的基础。

如何有效预防和缓解DDoS攻击:5大核心策略详解
网络安全 · 2026-08-31

如何有效预防和缓解DDoS攻击:5大核心策略详解

面对DDoS攻击,单纯增加带宽已非长久之计。本文详解5大核心防护策略:优化网络硬件配置、建立DNS冗余机制、部署透明缓解技术、引入负载平衡器及专用Anti-DDoS模块。通过合理组合这些技术手段,可有效抵御SYN泛洪、Slowloris等常见攻击,保障业务连续性与网站可用性。

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析
网络安全 · 2026-08-31

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析

许多企业误以为CDN、防火墙或黑名单能完全抵御DDoS攻击。本文深入解析四大常见误区:CDN仅提供部分缓解、静态黑名单易失效、防火墙算力有限且可能成为目标、阈值警报仅具滞后性。了解这些局限性,有助于构建更立体的防御体系,避免在攻击发生时措手不及。

常见DDoS攻击类型详解:原理、特征与防御策略
网络安全 · 2026-08-31

常见DDoS攻击类型详解:原理、特征与防御策略

本文详细解析四种常见DDoS攻击类型:SYN Flood利用TCP三次握手缺陷耗尽资源;UDP Flood通过海量数据包造成带宽拥塞;ICMP Flood利用Ping请求消耗系统算力;应用层Flood针对Web脚本进行高频请求。了解其原理是制定有效防御策略的基础。

如何有效抵御DDOS攻击:4种核心防护方案解析
网络安全 · 2026-08-31

如何有效抵御DDOS攻击:4种核心防护方案解析

面对DDOS攻击,企业需构建多层防护体系。本文详解四大核心策略:利用反向路由器查询进行流量清洗,通过GCDN智能分配节点隐藏源站IP,部署负载均衡硬件分担压力,以及接入高防机房抵御数百G恶意流量。掌握这些技术,可最大程度保障业务连续性。