【Linux基础知识系列】第七十八篇 - 初识Nmap:网络扫描工具

在网络管理和安全领域,网络扫描是一个不可或缺的工具。它可以帮助网络管理员了解网络中的设备、服务以及潜在的安全漏洞。Nmap(Network Mapper)是一个功能强大的开源网络扫描工具,它能够快速发现网络中的主机、端口和服务,并提供详细的信息。Nmap不仅适用于网络安全专家,对于普通用户来说,也是一个非常实用的工具,可以帮助他们更好地了解自己的网络环境。

Nmap的重要性在于它能够帮助用户:

  • 发现网络中的主机和设备。

  • 检测开放的端口和服务。

  • 识别潜在的安全漏洞。

  • 进行网络拓扑发现。

本文将详细介绍Nmap的基本概念、常用命令及其使用方法,帮助读者快速入门Nmap。

核心概念

Nmap是什么?

Nmap(Network Mapper)是一个开源的网络扫描工具,用于网络发现和安全审计。它能够发送原始IP数据包以检测网络中的主机、端口和服务。Nmap支持多种扫描技术,可以适应不同的网络环境和需求。

主机发现(Host Discovery)

主机发现是Nmap的核心功能之一,它用于检测网络中的活动主机。Nmap通过发送ICMP请求或其他类型的探测包来确定目标主机是否在线。

端口扫描(Port Scanning)

端口扫描是Nmap的另一个重要功能,它用于检测目标主机上开放的端口。Nmap支持多种端口扫描技术,包括TCP连接扫描、SYN扫描、UDP扫描等。

服务检测(Service Detection)

服务检测用于识别目标主机上运行的服务及其版本信息。Nmap通过发送特定的探测包并分析响应来确定服务的类型和版本。

操作系统检测(OS Detection)

操作系统检测用于识别目标主机的操作系统类型和版本。Nmap通过分析目标主机的TCP/IP堆栈行为来推断操作系统。

脚本扫描(Script Scanning)

Nmap提供了脚本扫描功能,用户可以通过编写或使用现成的Nmap脚本(NSE,Nmap Scripting Engine)来扩展Nmap的功能,例如检测漏洞、提取信息等。

命令与示例

安装Nmap

在大多数Linux发行版中,Nmap可以通过包管理器安装。以下是一些常见发行版的安装命令:

在Ubuntu/Debian上安装Nmap
sudo apt update
sudo apt install nmap
在Fedora上安装Nmap
sudo dnf install nmap
在CentOS/RHEL上安装Nmap
sudo yum install nmap

基本命令

扫描单个主机

扫描单个主机的开放端口:

nmap [目标IP地址]

例如,扫描IP地址为192.168.1.1的主机:

nmap 192.168.1.1
扫描多个主机

扫描多个主机的开放端口:

nmap [目标IP地址1] [目标IP地址2] ...

例如,扫描多个IP地址:

nmap 192.168.1.1 192.168.1.2
扫描IP范围

扫描一个IP范围内的主机:

nmap [起始IP地址]-[结束IP地址]

例如,扫描192.168.1.1192.168.1.10的主机:

nmap 192.168.1.1-10
扫描子网

扫描一个子网内的所有主机:

nmap [子网地址]

例如,扫描192.168.1.0/24子网内的所有主机:

nmap 192.168.1.0/24

高级命令

指定端口扫描

扫描特定端口:

nmap -p [端口号] [目标IP地址]

例如,扫描目标主机的2280端口:

nmap -p 22,80 192.168.1.1
扫描端口范围

扫描一个端口范围:

nmap -p [起始端口号]-[结束端口号] [目标IP地址]

例如,扫描目标主机的1-100端口范围:

nmap -p 1-100 192.168.1.1
使用SYN扫描

SYN扫描是一种半开放扫描技术,它不会完成TCP连接,因此可以避免被目标主机记录。使用SYN扫描:

nmap -sS [目标IP地址]

例如,使用SYN扫描目标主机:

nmap -sS 192.168.1.1
使用UDP扫描

UDP扫描用于检测UDP端口:

nmap -sU [目标IP地址]

例如,使用UDP扫描目标主机:

nmap -sU 192.168.1.1
操作系统检测

使用-O选项进行操作系统检测:

nmap -O [目标IP地址]

例如,检测目标主机的操作系统:

nmap -O 192.168.1.1
服务版本检测

使用-sV选项检测服务版本:

nmap -sV [目标IP地址]

例如,检测目标主机的服务版本:

nmap -sV 192.168.1.1
脚本扫描

使用--script选项进行脚本扫描:

nmap --script [脚本名称] [目标IP地址]

例如,使用http-title脚本扫描目标主机的HTTP服务标题:

nmap --script http-title 192.168.1.1

示例:扫描家庭网络

假设你想要扫描家庭网络中的所有设备,可以使用以下命令:

nmap 192.168.1.0/24

输出示例:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 10:00 CST
Nmap scan report for 192.168.1.1
Host is up (0.00010s latency).
Not shown: 995 closed ports
PORT     STATE    SERVICE
22/tcp   open     ssh
53/tcp   open     domain
80/tcp   open     http
139/tcp  open     netbios-ssn
445/tcp  open     microsoft-dsNmap scan report for 192.168.1.2
Host is up (0.00020s latency).
Not shown: 996 closed ports
PORT     STATE    SERVICE
22/tcp   open     ssh
80/tcp   open     http
443/tcp  open     https
8080/tcp open     http-proxyNmap done: 256 IP addresses (2 hosts up) scanned in 2.34 seconds

示例:检测目标主机的操作系统和服务版本

假设你想要检测目标主机的操作系统和服务版本,可以使用以下命令:

nmap -O -sV 192.168.1.1

输出示例

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 10:05 CST
Nmap scan report for 192.168.1.1
Host is up (0.00010s latency).
Not shown: 995 closed ports
PORT     STATE    SERVICE    VERSION
22/tcp   open     ssh        OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
53/tcp   open     domain     ISC BIND 9.16.1 (Ubuntu Linux)
80/tcp   open     http       Apache httpd 2.4.41 ((Ubuntu))
139/tcp  open     netbios-ssn Samba smbd 4.11.6-Ubuntu (workgroup: WORKGROUP)
445/tcp  open     microsoft-ds Samba smbd 4.11.6-Ubuntu (workgroup: WORKGROUP)OS details: Linux 5.4 (Ubuntu 20.04 LTS)
Network Distance: 1 hopOS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 3.45 seconds

常见问题

1. 如何安装Nmap?

在大多数Linux发行版中,可以通过包管理器安装Nmap。例如:

  • 在Ubuntu/Debian上:

  • sudo apt update
    sudo apt install nmap
  • 在Fedora上:

    sudo dnf install nmap
  • 在CentOS/RHEL上:

  • sudo yum install nmap

2. 如何扫描单个主机?

扫描单个主机的开放端口:

nmap [目标IP地址]

例如:

nmap 192.168.1.1

3. 如何扫描一个子网?

扫描一个子网内的所有主机:

nmap [子网地址]

例如:

nmap 192.168.1.0/24

4. 如何扫描特定端口?

扫描特定端口:

nmap -p [端口号] [目标IP地址]

例如:

nmap -p 22,80 192.168.1.1

5. 如何进行操作系统检测?

使用-O选项进行操作系统检测:

nmap -O [目标IP地址]

例如:

nmap -O 192.168.1.1

6. 如何进行服务版本检测?

使用-sV选项检测服务版本:

nmap -sV [目标IP地址]

例如:

nmap -sV 192.168.1.1

7. 如何使用脚本扫描?

使用--script选项进行脚本扫描:

nmap --script [脚本名称] [目标IP地址]

例如:

nmap --script http-title 192.168.1.1

实践建议

1. 使用合适的扫描选项

根据扫描目标和需求选择合适的扫描选项。例如,如果只需要检测主机是否在线,可以使用-sn选项进行主机发现;如果需要检测服务版本,可以使用-sV选项。

2. 遵守法律法规

在使用Nmap进行扫描时,务必确保扫描行为符合法律法规。未经授权扫描他人网络可能导致法律后果。

3. 使用输出选项保存结果

Nmap提供了多种输出选项,可以将扫描结果保存到文件中。例如,使用-oN选项将结果保存为普通文本文件:

nmap -oN scan_results.txt 192.168.1.0/24

4. 使用定时扫描

对于需要定期监控的网络,可以使用定时任务(如cron)定期运行Nmap扫描。例如,每天凌晨2点扫描网络:

0 2 * * * /usr/bin/nmap -oN /path/to/scan_results.txt 192.168.1.0/24

5. 使用Nmap脚本扩展功能

Nmap提供了丰富的脚本库(NSE),用户可以通过编写或使用现成的脚本来扩展Nmap的功能。例如,使用http-title脚本获取HTTP服务的标题:

nmap --script http-title 192.168.1.1

6. 使用图形界面工具

对于不熟悉命令行的用户,可以使用Nmap的图形界面工具(如Zenmap)来简化操作。Zenmap提供了友好的图形界面,用户可以通过图形界面配置扫描选项并查看扫描结果。

总结

本文详细介绍了Nmap的基本概念、常用命令及其使用方法。通过学习本文,读者可以快速入门Nmap,并掌握如何进行网络扫描、主机发现、端口扫描、服务检测和操作系统检测等基本操作。Nmap是一个功能强大的网络扫描工具,它不仅可以帮助网络管理员了解网络环境,还可以用于安全审计和漏洞检测。

Nmap的多样性和灵活性使其成为网络安全领域的重要工具。希望本文的介绍和实践建议能够帮助读者更好地理解和应用Nmap。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91401.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyGBS的两种录像回看

EasyGBS 支持两种录像回看,即“平台端”的录像回看和“设备端”的录像回看。本期我们来介绍两者的区别和使用方法。一、平台端录像1、什么是平台端录像平台端录像是指由 EasyGBS 平台直接录制并存储。2、配置平台端录像进入平台,依次点击【录像回放】→【…

大模型学习思路推荐!

为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署要求,深入实施人才强国战略和创新驱动发展战略,加强全国数字化人才队伍建设,持续推进人工智能从业人员…

数据库连接池性能优化实战

背景我们公司正在处于某个项目的维护阶段,领导对资源告警比较重视,服务器资源告警的就不说了,运维同学每隔一小时都会检测线上环境的应用服务信息,例如:网关日志响应时间告警/nginx日志接口响应时间告警/日志关键字异常…

Excel常用函数大全,非常实用

一、数学与统计函数1. SUM作用:求和SUM(number1, [number2], ...)SUM(A1:A10) ➔ 计算A1到A10单元格的总和注意:自动忽略文本和空单元格2. AVERAGE作用:计算平均值AVERAGE(number1, [number2], ...)AVERAGE(B2:B20) ➔ 计算B列20个数据的平均…

性能优化(一):时间分片(Time Slicing):让你的应用在高负载下“永不卡顿”的秘密

性能优化(一):时间分片(Time Slicing):让你的应用在高负载下“永不卡顿”的秘密 引子:那张让你浏览器崩溃的“无限列表” 想象一个场景:你需要渲染一个包含一万个项目的列表。在我们的“看不见”的应用中&a…

《C++》STL--list容器详解

在 C 标准模板库(STL)中,list 是一个非常重要的序列容器,它实现了双向链表的数据结构。与 vector 和 deque 不同,list 提供了高效的插入和删除操作,特别是在任意位置。本文将深入探讨 list 容器的特性、使用方法以及常见操作。 文…

Day 28:类的定义和方法

DAY 28 类的定义和方法 知识点学习 1. 类的定义 在Python中,类是创建对象的模板。使用class关键字来定义一个类。类名通常采用首字母大写的命名方式(PascalCase)。 # 最简单的类定义 class MyClass:pass # 使用pass占位符类的定义就像是…

OSPF综合实验报告册

一、实验拓扑二、实验要求1、R4为ISP,其上只配置IP地址;R4与其他所直连设备间均使用公有IP; 2、R3-R5、R6、R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分;除了R12有两个环回&#x…

网络层6——内部网关协议RIP、OSPF(重点)

目录 一、基本概念 1、理想的路由算法应具备的特点 2、分层次的路由选择协议 二、内部网关协议RIP 1、特点 2、路由交换信息 3、距离向量算法 4、坏消息传送慢问题 5、RIP报文格式 三、内部网关协议OSPF 1、特点 2、其他特点 3、自治系统区域划分 4、OSPF的5中分…

同品牌的系列广告要如何保证宣传的连贯性?

对于品牌的系列广告而言,内容的连贯性十分重要。如果系列广告之间缺乏内在联系,不仅会削弱品牌形象的统一性,还可能导致用户的认知混乱。保证宣传内容的连贯性不是让每则广告完全相同,而是在变化中保持核心要素的一致性。我们该如…

深度学习:激活函数Activaton Function

一、为什么需要激活函数?神经网络本质上是多个线性变换(矩阵乘法)叠加。如果没有激活函数,即使叠加多层,整体仍等价于一个线性函数:这样的网络无法学习和拟合现实世界中复杂的非线性关系。激活函数的作用&a…

deepseek: 切分类和长函数到同名文件中

import re import sys import os import ast from tokenize import generate_tokens, COMMENT, STRING, NL, INDENT, DEDENT import iodef extract_entities(filename):"""提取类和函数到单独文件"""with open(filename, r, encodingutf-8) as f…

新型融合肽递送外泌体修饰可注射温敏水凝胶用于骨再生

温敏水凝胶因能模拟细胞外基质微环境,且具有原位注射性和形态适应性,在骨组织工程中应用广泛。小肠黏膜下层(SIS)作为天然细胞外基质来源,富含 I 型和 III 型胶原蛋白及多种生物活性因子,其制备的水凝胶在组…

SPI接口的4种模式(根据时钟极性和时钟相位)

SPI(Serial Peripheral Interface) 接口根据时钟极性(CPOL)和时钟相位(CPHA)的不同组合,共有 4种工作模式。这些模式决定了数据采样和传输的时序关系,是SPI通信中必须正确配置的关键…

Java:高频面试知识分享2

HashSet 和 TreeSet 的区别?底层实现:HashSet 基于 HashMap 实现,使用哈希表存储元素;TreeSet 基于 TreeMap,底层为红黑树。元素顺序:HashSet 无序;TreeSet 会根据元素的自然顺序或传入的 Compa…

C语言习题讲解-第九讲- 常见错误分类等

C语言习题讲解-第九讲- 常见错误分类等1. C程序常见的错误分类不包含:( )2. 根据下面递归函数:调用函数 Fun(2) ,返回值是多少( )3. 关于递归的描述错误的是:( &#x…

A∗算法(A-star algorithm)一种在路径规划和图搜索中广泛使用的启发式搜索算法

A∗A*A∗算法(A-star algorithm)是一种在路径规划和图搜索中广泛使用的启发式搜索算法,它结合了Dijkstra算法的广度优先搜索思想和启发式算法的效率优势,能够高效地找到从起点到终点的最短路径。 1. 基本原理 A*算法的核心是通过估…

UniappDay06

1.填写订单-渲染基本信息 静态结构&#xff08;分包&#xff09;封装请求API import { http } from /utils/http import { OrderPreResult } from /types/orderexport const getmemberOrderPreAPI () > {return http<OrderPreResult>({method: GET,url: /member/orde…

论文略读:GINGER: Grounded Information Nugget-Based Generation of Responses

SIGIR 2025用户日益依赖对话助手&#xff08;如 ChatGPT&#xff09;来满足多种信息需求&#xff0c;这些需求包括开放式问题、需要推理的间接回答&#xff0c;以及答案分布在多个段落中的复杂查询RAG试图通过在生成过程中引入检索到的信息来解决这些问题但如何确保回应的透明性…

从内部保护你的网络

想象一下&#xff0c;你是一家高端俱乐部的老板&#xff0c;商务贵宾们聚集在这里分享信息、放松身心。然后假设你雇佣了最顶尖的安保人员——“保镖”——站在门口&#xff0c;确保你准确掌握所有进出的人员&#xff0c;并确保所有人的安全。不妨想象一下丹尼尔克雷格和杜安约…