如何在 Linux 上使用 nmap 查看网络上的所有设备如何在 Linux 上使用 nmap 查看网络上的所有设备如何在 Linux 上使用 nmap 查看网络上的所有设备如何在 Linux 上使用 nmap 查看网络上的所有设备
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上使用 nmap 查看网络上的所有设备

认为您知道什么连接到您的家庭网络?你可能会感到惊讶。了解如何在 Linux 上使用 nmap 进行检查,这将让您探索连接到网络的所有设备。

您可能认为您的家庭网络非常简单,深入了解它没有什么可学的。你可能是对的,但你很有可能会学到一些你不知道的东西。随着物联网设备、手机和平板电脑等移动设备以及智能家居革命的普及——除了宽带路由器、笔记本电脑和台式电脑等“普通”网络设备——它可能会让人大开眼界。

如果需要,请安装 nmap

我们将使用 nmap 命令。根据您在计算机上安装的其他软件包,可能已经为您安装了 nmap。

如果没有,这就是在 Ubuntu 中安装它的方法。

sudo apt-get install nmap

这是在 Fedora 上安装它的方法。

sudo dnf install nmap

这是在 Manjaro 上安装它的方法。

sudo pacman -Syu nmap

您可以使用 Linux 发行版的包管理器将它安装在其他版本的 Linux 上。

查找您的 IP 地址

第一项任务是发现您的 Linux 计算机的 IP 地址是什么。您的网络可以使用最小和最大 IP 地址。这是您网络的 IP 地址范围或范围。我们需要向 nmap 提供 IP 地址或 IP 地址范围,因此我们需要知道这些值是什么。

方便地,Linux 提供了一个名为 ip 的命令,它有一个名为 addr(地址)的选项。键入 ip、一个空格、addr,然后按 Enter。

ip addr

在输出的底部,您会找到您的 IP 地址。它前面有标签“inet”。

这台电脑的IP地址是“192.168.4.25”。 “/24”表示子网掩码中有三组连续的八个 1。 (并且 3 x 8 =24。)

在二进制中,子网掩码是:

11111111.11111111.11111111.00000000

在十进制中,它是 255.255.255.0。

子网掩码和IP地址用来表示IP地址的哪一部分标识网络,哪一部分标识设备。此子网掩码通知硬件 IP 地址的前三个数字将标识网络,IP 地址的最后部分标识各个设备。由于 8 位二进制数中可以容纳的最大数字是 255,因此该网络的 IP 地址范围将是 192.168.4.0 到 192.168.4.255。

所有这些都封装在“/24”中。令人高兴的是,nmap 使用该符号,因此我们拥有开始使用 nmap 所需的一切。

开始使用 nmap

nmap 是一个网络映射工具。它通过向我们将为其提供的范围内的 IP 地址发送各种网络消息来工作。它可以通过判断和解释它得到的响应类型来推断出很多关于它正在探测的设备的信息。

让我们开始使用 nmap 进行简单扫描。我们将使用 -sn(不扫描端口)选项。这告诉 nmap 现在不要探测设备上的端口。它将进行轻量级快速扫描。

即便如此,nmap 的运行仍需要一些时间。当然,网络上的设备越多,所需的时间就越长。它首先进行所有的探测和侦察工作,然后在第一阶段完成后展示其发现。如果一分钟左右没有任何可见的变化,请不要感到惊讶。

我们将要使用的 IP 地址是我们之前使用 ip 命令获得的地址,但最后的数字设置为零。这是该网络上第一个可能的 IP 地址。 “/24”告诉 nmap 扫描该网络的整个范围。参数“192.168.4.0/24”翻译为“从 IP 地址 192.168.4.0 开始,直到并包括 192.168.4.255 的所有 IP 地址”。

请注意,我们正在使用 sudo。

sudo nmap -sn 192.168.4.0/24

稍等片刻后,输出将写入终端窗口。

您可以在不使用 sudo 的情况下运行此扫描,但使用 sudo 可确保它可以提取尽可能多的信息。例如,如果没有 sudo,此扫描将不会返回制造商信息。

使用 -sn 选项(以及快速轻量级扫描)的优势在于它为您提供了一个清晰的实时 IP 地址列表。换句话说,我们有一个连接到网络的设备列表,以及它们的 IP 地址。在可能的情况下,nmap 已经确定了制造商。这对于第一次尝试来说还不错。

这是列表的底部。

我们已经建立了一个已连接网络设备的列表,因此我们知道其中有多少。有 15 台设备打开并连接到网络。我们知道其中一些的制造商。或者,正如我们将要看到的,我们拥有制造商报告的nmap,尽其能力。

当您查看结果时,您可能会看到您认识的设备。很可能有些你不知道。这些都是我们需要进一步调查的。

我很清楚其中一些设备是什么。 Raspberry Pi Foundation 是不言自明的。 Amazon Technologies 设备将成为我的 Echo Dot。我唯一拥有的三星设备是激光打印机,因此缩小了范围。有几个设备被列为戴尔制造的。那些很简单,那就是 PC 和笔记本电脑。 Avaya 设备是 IP 语音电话,为我提供总部电话系统的分机。它让他们更容易在家里缠着我,所以我很清楚那个装置。

但我仍然有疑问。

有几种设备的名称对我来说没有任何意义。例如,Liteon 技术和 Elitegroup Computer 系统。

我有(方式)不止一个 Raspberry PI。连接到网络的数量总是会有所不同,因为随着它们被重新成像和重新定位,它们会不断地换入和换出任务。但肯定的是,应该不止一个出现。

有几个设备标记为未知。显然,他们需要调查。

执行更深入的扫描

如果我们删除 -sn 选项,nmap 也会尝试探测设备上的端口。端口是设备上网络连接的编号端点。考虑一个公寓楼。所有公寓都有相同的街道地址(相当于IP地址),但每间公寓都有自己的号码(相当于端口)。

设备中的每个程序或服务都有一个端口号。网络流量被传送到一个 IP 地址和一个端口,而不仅仅是一个 IP 地址。一些端口号是预先分配或保留的。它们总是用于承载特定类型的网络流量。例如,端口 22 保留用于 SSH 连接,端口 80 保留用于 HTTP 网络流量。

我们将使用 nmap 扫描每个设备上的端口并判断哪些是打开的。

nmap 192.168.4.0/24

这一次我们得到了每台设备的更详细的摘要。我们被告知网络上有 13 个活动设备。等一下;刚才我们有 15 台设备。

当您运行这些扫描时,设备的数量可能会有所不同。这可能是由于移动设备到达和离开场所,或者设备被打开和关闭。另外,请注意,当您打开已关闭的设备时,它的 IP 地址可能与上次使用时的 IP 地址不同。可能会,但也可能不会。

有很多输出。让我们再做一次并将其捕获到一个文件中。

nmap 192.168.4.0/24 > nmap-list.txt

现在我们可以使用 less 列出文件,并根据需要搜索它。

less nmap-list.txt

当您滚动浏览 nmap 报告时,您正在寻找任何您无法解释或看起来不寻常的内容。当您查看列表时,记下您希望进一步调查的任何设备的 IP 地址。

根据我们之前生成的列表,192.168.4.10 是一个 Raspberry Pi。它将运行一个或另一个 Linux 发行版。那么什么在使用端口 445?它被描述为“microsoft-ds”。微软,在运行 Linux 的 Pi 上?我们肯定会调查的。

192.168.4.11 在之前的扫描中被标记为“未知”。它有很多开放的端口;我们需要知道那是什么。

192.168.4.18 也被识别为 Raspberry Pi。但是那个 Pi 和设备 192.168.4.21 都打开了端口 8888,它被描述为被“sun-answerbook”使用。 Sun AnswerBook 是一个已停用多年的(初级)文档检索系统。不用说,我没有在任何地方安装它。那需要看。

设备 192.168.4.22 之前被识别为三星打印机,此处通过标有“打印机”的标签对其进行了验证。引起我注意的是 HTTP 端口 80 存在并打开。此端口保留用于网站流量。我的打印机包含网站吗?

据报道,设备 192.168.4.31 是由一家名为 Elitegroup Computer Systems 的公司制造的。我从没听说过它们,而且该设备有很多端口是打开的,所以我们会调查一下。

设备打开的端口越多,网络罪犯进入它的机会就越大——如果它直接暴露在互联网上的话。它就像一座房子。您拥有的门窗越多,窃贼的潜在进入点就越多。

我们已经排好嫌疑人;让我们让他们说话

设备 192.168.4.10 是一个打开了端口 445 的 Raspberry Pi,它被描述为“microsoft-ds”。在 Internet 上快速搜索一下就会发现端口 445 通常与 Samba 相关联。 Samba 是 Microsoft 服务器消息块协议 (SMB) 的免费软件实现。 SMB 是一种通过网络共享文件夹和文件的方式。

这是有道理的;我将那个特定的 Pi 用作一种迷你网络附加存储设备 (NAS)。它使用 Samba,因此我可以从网络上的任何计算机连接到它。好的,那很容易。一个下来,还有几个去。

具有许多开放端口的未知设备

IP 地址为 192.168.4.11 的设备有一个未知的制造商并且打开了很多端口。

我们可以更积极地使用 nmap 来尝试从设备中获取更多信息。 -A(主动扫描)选项强制 nmap 使用操作系统检测、版本检测、脚本扫描和跟踪路由检测。

-T(计时模板)选项允许我们指定一个从 0 到 5 的值。这设置了一种计时模式。计时模式有很好的名字:偏执 (0)、偷偷摸摸 (1)、礼貌 (2)、正常 (3)、攻击性 (4) 和疯狂 (5)。数字越低,nmap 对带宽和其他网络用户的影响就越小。

请注意,我们没有为 nmap 提供 IP 范围。我们将 nmap 集中在单个 IP 地址上,这是相关设备的 IP 地址。

sudo nmap -A -T4 192.168.4.11

在用于研究本文的机器上,nmap 执行该命令用了九分钟。如果您必须等待一段时间才能看到任何输出,请不要感到惊讶。

不幸的是,在这种情况下,输出并没有给我们所希望的简单答案。

我们了解到的另一件事是它正在运行一个 Linux 版本。在我的网络上,这并不奇怪,但这个版本的 Linux 很奇怪。它似乎很旧。几乎所有的物联网设备都使用 Linux,所以这可能是一个线索。

在输出的更下方,nmap 为我们提供了设备的媒体访问控制地址(MAC 地址)。这是分配给网络接口的唯一引用。

MAC 地址的前三个字节称为组织唯一标识符 (OUI)。这可用于识别网络接口的供应商或制造商。如果你碰巧是一个极客,他把其中的 35,909 个数据库放在一起,那就是。

我的实用程序说它属于 Google。鉴于之前关于 Linux 版本特殊的问题以及它可能是物联网设备的怀疑,这将矛头直指我的 Google Home 迷你智能音箱。

您可以使用 Wireshark Manufacturer Lookup 页面在线执行相同类型的 OUI 查找。

令人鼓舞的是,这与我的结果相符。

确定设备 ID 的一种方法是执行扫描,关闭设备并再次扫描。第二组结果中现在缺少的 IP 地址将是您刚刚关闭的设备。

太阳答题簿?

下一个谜团是 IP 地址为 192.168.4.18 的 Raspberry Pi 的“sun-answerbook”描述。相同的“sun-answerbook”描述出现在 192.168.4.21 的设备上。设备 192.168.4.21 是一台 Linux 台式电脑。

nmap 从已知软件关联列表中对端口的使用做出最佳猜测。当然,如果这些端口关联中的任何一个不再适用——也许软件不再使用并且已经过时——您可能会在扫描结果中得到误导性的端口描述。这很可能就是这种情况,Sun AnswerBook 系统可以追溯到 1990 年代初期,对于那些甚至听说过它的人来说只不过是遥远的记忆。

那么,如果它不是一些古老的 Sun Microsystems 软件,那么 Raspberry Pi 和台式机这两种设备有什么共同点呢?

互联网搜索没有带回任何有用的东西。有很多点击率。似乎任何不想使用端口 80 的 Web 界面似乎都选择端口 8888 作为后备。因此,下一个合乎逻辑的步骤是尝试使用浏览器连接到该端口。

我在浏览器中使用 192.168.4.18:8888 作为地址。这是在浏览器中指定 IP 地址和端口的格式。使用冒号 : 将 IP 地址与端口号分开。

确实打开了一个网站。

它是运行 Resilio Sync 的任何设备的管理门户。

我总是使用命令行,所以我完全忘记了这个工具。因此,Sun AnswerBook 条目列表完全是转移注意力,8888 端口背后的服务已被识别。

一个隐藏的 Web 服务器

我记录的下一个问题是打印机上的 HTTP 端口 80。同样,我从 nmap 结果中获取了 IP 地址,并将其用作浏览器中的地址。我不需要提供端口;浏览器将默认为端口 80。

瞧!我的打印机中确实有一个嵌入式网络服务器。

现在我可以看到已经翻过的页数、碳粉量以及其他有用或有趣的信息。

另一个未知设备

到目前为止,位于 192.168.4.24 的设备没有向我们尝试过的任何 nmap 扫描透露任何信息。

我添加了 -Pn(无 ping)选项。这会导致 nmap 假定目标设备已启动并继续进行其他扫描。这对于未按预期做出反应并混淆 nmap 以为它们处于离线状态的设备很有用。

sudo nmap -A -T4 -Pn 192.168.4.24

这确实检索了信息转储,但没有任何信息可以识别该设备。

据报道,它正在运行 Mandriva Linux 的 Linux 内核。 Mandriva Linux 是一个于 2011 年停产的发行版。它由一个支持它的新社区 OpenMandriva 继续存在。

另一个物联网设备,可能吗?可能不是——我只有两个,而且它们都被计算在内了。

逐个房间走查和物理设备计数对我没有任何帮助。让我们查找MAC地址。

所以,原来是我的手机。

请记住,您可以使用 Wireshark Manufacturer Lookup 页面在线进行这些查找。

精英集团计算机系统

我的最后两个问题是关于我不认识的两个制造商名称的设备,即 Liteon 和 Elitegroup Computer Systems。

让我们改变策略。另一个有助于确定网络上设备身份的命令是 arp。 arp 用于处理 Linux 计算机中的地址解析协议表。它用于将 IP 地址(或网络名称)转换为 MAC 地址。

如果你的电脑没有安装arp,你可以这样安装。

在 Ubuntu 上,使用 apt-get :

sudo apt-get install net-tools

在 Fedora 上使用 dnf :

sudo dnf install net-tools

在 Manjaro 上使用 pacman :

sudo pacman -Syu net-tools

要获取设备列表及其网络名称(如果已分配给它们),只需键入 arp 并按 Enter 键。

这是我的研究机器的输出:

第一列中的名称是已分配给设备的机器名称(也称为主机名或网络名称)。其中一些是我设置的(例如 Nostromo、Cloudbase 和 Marineville),还有一些是由制造商设置的(例如 Vigor.router)。

输出为我们提供了两种将其与 nmap 的输出进行交叉引用的方法。因为列出了设备的 MAC 地址,我们可以参考 nmap 的输出来进一步识别设备。

此外,因为您可以将机器名与 ping 一起使用,并且因为 ping 显示基础 IP 地址,您可以使用 ping 将机器名交叉引用到 IP 地址 依次在每个名称上。

例如,让我们 ping Nostromo.local 并找出它的 IP 地址是什么。请注意,机器名称不区分大小写。

ping nostromo.local

您必须使用 Ctrl+C 来停止 ping。

输出显示它的 IP 地址是 192.168.4.15。这恰好是在 Liteon 作为制造商的第一次 nmap 扫描中出现的设备。

Liteon 公司生产的计算机组件被许多计算机制造商使用。在这种情况下,它是华硕笔记本电脑中的 Liteon Wi-Fi 卡。因此,正如我们之前提到的,nmap 返回的制造商名称只是它的最佳猜测。 nmap 是如何知道华硕笔记本电脑安装了 Liteon Wi-Fi 卡的?

最后。 Elitegroup Computer Systems 制造的设备的 MAC 地址与 arp 列表中我命名为 LibreELEC.local 的设备匹配。

这是一个英特尔 NUC,运行 LibreELEC 媒体播放器。所以这个 NUC 有一块来自 Elitegroup Computer Systems 公司的主板。

我们就在那里,所有的谜团都解开了。

全部占

我们已经验证该网络上没有莫名其妙的设备。您也可以使用此处描述的技术来调查您的网络。你这样做可能是出于兴趣——为了满足你内心的极客——或者为了让你自己满意,因为连接到你网络的一切都有权存在。

请记住,连接的设备有各种形状和大小。我花了一些时间兜圈子,试图找到一个奇怪的设备,然后才意识到它实际上是我手腕上的智能手表。

Linux Commands
Files tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc
Processes alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
Networking netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

RELATED: Best Linux Laptops for Developers and Enthusiasts

©2015-2025 艾丽卡 support@alaica.com