Linux怎么使用Nmap扫描局域网存活主机

胖磊吖_1035

胖磊吖_1035

2026-06-29

609人浏览

原创

直接用nmap -sn扫不出在线主机,首要排查网段填写错误和未加sudo权限;ARP探测需root才能生效,否则降级为ICMP+SYN导致漏扫,应先用ip addr确认子网并执行sudo nmap -sn -PE -PS22,80,443增强探测。

linux怎么使用nmap扫描局域网存活主机

直接用 nmap -sn 扫不出在线主机?先看网段和权限

绝大多数扫不到结果的问题,出在网段填错或没加 sudo。Linux 下 ARP 探测(本地网段最快方式)必须 root 权限,非 root 用户会自动降级为 ICMP+SYN 组合探测,而很多内网设备禁 ICMP,导致全显示 Host seems down。

  • 先用 ip addr 确认本机 IP 和子网掩码,算出正确 CIDR:比如 192.168.1.5/24 对应网段是 192.168.1.0/24,不是 192.168.0.0/16 或随便写个 *.*.*.*
  • 执行前务必加 sudo:sudo nmap -sn 192.168.1.0/24,否则 ARP 不生效,尤其对 Windows 和多数 IoT 设备漏扫严重
  • 如果输出里有 MAC Address: xx:xx:xx:xx:xx:xx (Dell Inc.) 这类字段,说明 ARP 成功;只有 Host is up 没 MAC,大概率是权限不足或跨网段

-sn 扫出来全是 down?换混合探测策略

目标主机禁 ping、防火墙丢包、或只开特定端口(比如只监听 22 或 80),-sn 默认行为就会失效。这时候不能直接上 -Pn,而是用更精准的混合探测补漏。

  • 加 -PE 强制发 ICMP Echo:sudo nmap -sn -PE 192.168.1.0/24,覆盖允许 ping 的设备
  • 再加 -PS22,80,443 向常见服务端口发 SYN 包:sudo nmap -sn -PE -PS22,80,443 192.168.1.0/24,能唤醒只开 SSH/Web 的设备
  • 避免用 -PU(UDP ping),内网成功率低、耗时长,基本无效;-PP(ICMP timestamp)和 -PM(ICMP netmask)也极少有用,不建议堆参数

扫到 IP 了,但没显示 MAC 地址?说明不是本地网段 ARP

只要输出里没有 MAC Address 字段,哪怕写了 Host is up,也代表 Nmap 没走 ARP,而是走了跨网段探测逻辑(ICMP + TCP SYN),可靠性下降,且无法识别厂商。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 检查本机是否和目标在同一子网:比如你 IP 是 10.0.0.5/24,目标却在 192.168.1.x,那肯定扫不到 MAC —— 这不是 Nmap 问题,是物理网络隔离
  • 确认交换机没开端口隔离(Port Isolation)或私有 VLAN,这类配置会让 ARP 请求发不出去
  • 某些虚拟化环境(如 VMware NAT 模式)下,宿主机和客户机不在同一二层,ARP 失效属正常,此时只能依赖 -PE -PS 组合

PE 环境或无 root 权限时,nmap -sn 行为差异大

WinPE/Linux PE 里常缺 libpcap 或权限受限,nmap -sn 会退化成纯 ICMP 扫描,漏扫率陡增;普通用户在桌面 Linux 里不加 sudo,也会跳过 ARP 直接走 TCP ping。

  • PE 下先运行 nmap -v 确认能否加载驱动,若报 libpcap not found,需手动补全 libpcap.dll 或改用 fping -a -g 192.168.1.0/24
  • 没 root 时,nmap -sn 实际等价于 nmap -PE -PS80,443,但并发数极低,扫描慢且易超时,建议加 --max-retries 1 --host-timeout 15s 控制节奏
  • 别信 nmap -sP —— 这是旧版参数,新版已弃用,文档里还留着纯属兼容,实际行为不稳定

真正卡住的点往往不在命令本身,而在你默认认为“IP 能通就一定在同一个广播域”——局域网不是地理概念,是二层可达范围。ARP 发不出去,再多探测包也白搭。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

2025.09.05

630

5

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

2025.11.16

343

7

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

2025.11.17

533

20

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

2025.11.27

303

6

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4250

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3573

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2833

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6930

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6562

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习