news 2026/7/6 17:39:46

【Linux 基础知识系列:第二百一十二篇】使用 nmap 进行端口扫描与服务探测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Linux 基础知识系列:第二百一十二篇】使用 nmap 进行端口扫描与服务探测

简介

在网络管理和安全领域,了解目标主机的开放端口和服务信息是至关重要的。这不仅有助于系统管理员进行日常的网络维护和故障排查,还能帮助安全专家发现潜在的安全漏洞。nmap(Network Mapper)是一款功能强大的开源网络扫描工具,它能够快速、准确地扫描目标主机的开放端口和服务信息。通过使用nmap,我们可以轻松地进行网络拓扑发现、端口扫描和服务版本探测等操作。本文将深入讲解nmap的常用扫描类型,包括 TCP 全连接扫描和 SYN 半连接扫描,并演示如何探测目标主机的开放端口与运行服务。

核心概念

端口扫描

端口扫描是一种网络技术,用于检测目标主机上开放的端口。每个端口都可能对应一个正在运行的服务,例如 HTTP 服务通常运行在端口 80 上。通过扫描这些端口,我们可以了解目标主机上哪些服务是可访问的,从而为进一步的网络分析或安全评估提供依据。

TCP 全连接扫描

TCP 全连接扫描是最基本的端口扫描方式。它通过建立完整的 TCP 三次握手过程来确定目标端口的状态。如果三次握手成功,则认为端口是开放的;如果收到 RST(Reset)包,则认为端口是关闭的。这种扫描方式的优点是简单直接,但缺点是容易被目标主机的日志记录下来,因为完整的 TCP 连接会被视为正常的网络活动。

SYN 半连接扫描

SYN 半连接扫描是一种更隐蔽的扫描方式。它只发送一个 SYN(Synchronize)包到目标端口,如果收到 SYN-ACK(Synchronize-Acknowledge)包,则认为端口是开放的;如果收到 RST 包,则认为端口是关闭的。这种扫描方式不会完成完整的 TCP 三次握手,因此在某些情况下可以避开简单的防火墙检测。

服务探测

服务探测是端口扫描的进一步操作。在确定端口开放后,nmap可以尝试识别运行在该端口上的服务类型及其版本信息。这对于评估服务的安全性非常有帮助,因为某些旧版本的服务可能存在已知的安全漏洞。

命令与示例

安装 nmap

在大多数 Linux 发行版中,nmap可以通过包管理器轻松安装。

在 Debian/Ubuntu 系统中:

sudo apt update sudo apt install nmap

在 CentOS/RHEL 系统中:

sudo yum install nmap

TCP 全连接扫描

TCP 全连接扫描使用-sT选项。以下是一个简单的示例,扫描目标主机192.168.1.1的开放端口。

nmap -sT 192.168.1.1

示例输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-10 10:00 CST Nmap scan report for 192.168.1.1 Host is up (0.00026s latency). Not shown: 996 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 1.52 seconds

SYN 半连接扫描

SYN 半连接扫描使用-sS选项。这种方式更加隐蔽,适合在需要避免被目标主机记录的情况下使用。

nmap -sS 192.168.1.1

示例输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-10 10:05 CST Nmap scan report for 192.168.1.1 Host is up (0.00025s latency). Not shown: 996 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 1.48 seconds

服务探测

在扫描端口的同时,nmap可以使用-sV选项进行服务探测,以获取端口上运行的服务版本信息。

nmap -sV 192.168.1.1

示例输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-10 10:10 CST Nmap scan report for 192.168.1.1 Host is up (0.00024s latency). Not shown: 996 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) 443/tcp open ssl/http Apache httpd 2.4.41 ((Ubuntu)) 3306/tcp open mysql MySQL 8.0.21-0ubuntu0.20.04.4 Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 3.20 seconds

扫描多个端口

如果只想扫描特定的几个端口,可以使用-p选项指定端口号。

nmap -sT -p 22,80,443 192.168.1.1

示例输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-10 10:15 CST Nmap scan report for 192.168.1.1 Host is up (0.00023s latency). PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

扫描多个主机

nmap支持扫描多个主机,可以使用 IP 地址范围或子网掩码。

nmap -sT 192.168.1.1-10

或者使用子网掩码:

nmap -sT 192.168.1.0/24

输出扫描结果

nmap支持将扫描结果输出到文件,方便后续分析。可以使用-oN(普通格式)、-oG(grepable 格式)或-oX(XML 格式)选项。

nmap -sT 192.168.1.1 -oN scan_results.txt

常见问题

如何避免扫描被目标主机检测到?

SYN 半连接扫描(-sS)是一种相对隐蔽的扫描方式,因为它不会完成完整的 TCP 三次握手。此外,可以使用--scan-delay选项增加扫描延迟,使扫描过程更加缓慢,从而降低被检测到的可能性。

nmap -sS --scan-delay 1s 192.168.1.1

如何扫描特定的服务?

如果只想扫描特定的服务,可以使用-p选项结合服务名称。例如,只扫描 HTTP 和 HTTPS 服务:

nmap -sT -p http,https 192.168.1.1

如何扫描 UDP 端口?

nmap也支持 UDP 端口扫描,使用-sU选项。

nmap -sU 192.168.1.1

如何处理扫描结果中的 “filtered” 状态?

当端口状态显示为 “filtered” 时,表示nmap无法确定端口是开放还是关闭,这通常是因为目标主机的防火墙或过滤设备阻止了扫描请求。可以尝试使用不同的扫描类型或增加扫描延迟来解决这个问题。

实践建议

使用合适的扫描类型

根据扫描目标和需求选择合适的扫描类型。如果目标主机对扫描行为较为敏感,建议使用 SYN 半连接扫描(-sS);如果需要快速扫描且不担心被记录,可以使用 TCP 全连接扫描(-sT)。

结合服务探测

在扫描端口时,建议结合服务探测(-sV)以获取更详细的服务版本信息。这有助于评估服务的安全性,特别是对于已知存在漏洞的服务版本。

定期扫描

定期对网络进行扫描可以帮助及时发现新开放的端口和服务,以及潜在的安全漏洞。可以将扫描任务加入定时任务(cron),实现自动化扫描。

# 每天凌晨 2 点执行扫描任务 0 2 * * * nmap -sT -sV 192.168.1.1 -oN /var/log/nmap_scan_results.txt

分析扫描结果

扫描完成后,仔细分析扫描结果文件。对于开放的端口和服务,检查是否有已知的安全漏洞,并采取相应的安全措施。可以使用工具如grepawk来快速提取关键信息。

grep "open" scan_results.txt

总结

本文详细介绍了如何使用nmap进行端口扫描与服务探测,包括 TCP 全连接扫描、SYN 半连接扫描以及服务探测的基本方法和应用场景。通过合理使用这些扫描技术,我们可以快速了解目标主机的网络状态,发现潜在的安全问题。在实际应用中,选择合适的扫描类型、结合服务探测以及定期进行扫描是确保网络安全的关键实践。掌握这些技能后,你将能够更有效地管理和维护网络环境,提升网络安全性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 18:16:40

【稀缺资源】Open-AutoGLM源码获取通道与私有化部署技术内幕曝光

第一章:智谱Open-AutoGLM开源下载教程环境准备与依赖安装 在开始下载和使用 Open-AutoGLM 之前,需确保本地开发环境已配置 Python 3.8 或更高版本,并建议使用虚拟环境以隔离项目依赖。可通过以下命令创建并激活虚拟环境:# 创建虚拟…

作者头像 李华
网站建设 2026/7/1 11:18:31

11、无线攻击调查:原理、测试与防范策略

无线攻击调查:原理、测试与防范策略 1. 无线攻击现状与风险 如今,无线设备正将企业网络的边界从办公室扩展到周边建筑和公共街道。攻击者无需闯入办公室或绕过防火墙策略,就能利用企业无线安全漏洞,在短时间内侵入网络。像BJ’s Wholesale Club、Lowe’s Companies Inc.等…

作者头像 李华
网站建设 2026/6/30 18:16:36

27、TCP/IP网络中的流量与拥塞控制技术解析

TCP/IP网络中的流量与拥塞控制技术解析 在TCP/IP网络中,流量控制和拥塞控制是确保网络高效、稳定运行的关键技术。下面将详细介绍几种常见的拥塞控制机制,包括TCP Vegas、带显式拥塞通知(ECN)的TCP,以及EASY速率基流量控制方案。 1. TCP Vegas拥塞控制机制 TCP Vegas是…

作者头像 李华
网站建设 2026/6/30 18:16:34

28、高速网络中的QoS路由:原理与实现

高速网络中的QoS路由:原理与实现 1. QoS路由概述 在传统数据网络中,路由主要关注的是连通性。路由协议通常使用单一指标(如跳数或延迟)来描述网络,并采用最短路径算法进行路径计算,而往往忽略了不同数据包或流可能具有的服务质量(QoS)要求。这就导致路由决策在不考虑…

作者头像 李华
网站建设 2026/6/30 18:16:33

【智谱Open-AutoGLM论文精读】:3步搞懂大模型自动任务生成机制

第一章:智谱Open-AutoGLM论文核心思想智谱AI推出的Open-AutoGLM项目,旨在构建一个面向自然语言处理任务的自动化大模型调优框架。该框架融合了提示工程、模型微调与任务自适应机制,通过统一接口实现对多种下游任务的零样本或少样本高效迁移。…

作者头像 李华