Linux arping命令教程

这个 阿平 command是Linux操作系统中用来发现和检测网络上主机的命令行工具。ARP使用ARP协议来ping带有第2层ARP请求的主机。ARP协议用于将IP地址解析为MAC地址,以便在局域网内进行通信。arping将尝试将所有网络地址解析为MAC地址,主机将为ARP请求提供带有MAC地址的ARP应答。arping名称包括 arp+ing 在哪里 阿普 阿普 协议和 惯性导航与制导 发出砰的声响 发出砰的声响 命令。

null

在Ubuntu,Debian,Kali,Mint上安装arping

arping命令可以安装在基于deb的发行版上,比如Ubuntu、Debian、Kali和Mint。包名称与命令arping相同。

$ sudo apt install arping
图片[1]-Linux arping命令教程-yiteyi-C++库
在Ubuntu,Debian,Kali,Mint上安装arping

在CentOS、Fedora、RHEL上安装arping

arping命令也由基于rpm的发行版提供,如CentOS、Fedora、RHEL等。下面的命令将为CentOS、Fedora、RHEL安装arping。

$ sudo yum install arping

显示arping命令版本

安装arping命令后,我们可以检查安装及其版本,而不提供任何选项。这将以简短的形式列出arping命令的版本和支持的选项。

$ arping
图片[2]-Linux arping命令教程-yiteyi-C++库

我们可以从输出中看到,当前的arping命令版本是2.20。作为一个基本的和MAC相关的工具,arping命令不会定期更新。

显示arping帮助信息

详细的帮助信息和支持的选项可以与–help选项一起列出。这将列出所有提供的选项及其描述,如下所示。

$ arping --help
图片[3]-Linux arping命令教程-yiteyi-C++库
显示arping帮助信息

列出当前ARP表

Linux将IP地址和MAC地址记录存储在一个名为ARP table的表中。ARP表是用ARP请求响应创建的,这些表记录被临时存储以获取最新更新并防止出错。当前ARP表及其记录可以用ARP命令列出,如下所示。我们还将提供 -a 选项列出所有记录。

$ arp -a

输出如下。

? (192.168.142.130) at 00:0c:29:dc:62:6a [ether] on ens33
? (192.168.142.254) at 00:50:56:eb:7a:b6 [ether] on ens33
_gateway (192.168.142.2) at 00:50:56:ec:77:85 [ether] on ens33

使用ARP协议发现/扫描主机

arping命令可以使用MAC地址通过ARP协议ping IP地址。但IP地址扫描如下所示。这将持续ping目标IP地址。由于arping命令使用低级网络协议栈(如创建ARP包等),因此它需要根或管理权限。可以通过sudo命令或在根用户会话中运行arping命令来提供这些根用户权限。

$ sudo arping 192.168.142.2

输出如下。从输出中我们可以看到ARP包的编号是由 索引=0 . 还提供了当前ping的RTT或往返时间 时间= 信息。每个arp ping提供远程IP地址MAC地址。

ARPING 192.168.142.260 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=0 time=151.514 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=1 time=154.069 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=2 time=162.203 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=3 time=243.078 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=4 time=193.959 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=5 time=130.805 usec^C--- 192.168.142.2 statistics ---6 packets transmitted, 6 packets received, 0% unanswered (0 extra)rtt min/avg/max/std-dev = 0.131/0.173/0.243/0.037 ms

ping将连续运行,并且可以用 CTRL+c键 钥匙。ping停止后,会显示一些关于arping的基本统计信息。

  • 发送6个数据包 描述发送到目标的ARP数据包总数。
  • 接收到6个数据包 描述接收到的数据包和发送的数据包的总数。
  • 0%%未应答 描述未应答的数据包。
  • 最小 是最短传输时间。
  • 平均值 是平均传输时间。
  • 最大值 是最长传输时间。

相关文章: Linux mv命令教程

设置Ping数据包计数

默认情况下,arping命令连续ping远程目标,除非我们停止它或指定ping数据包计数,否则它将永远运行。包计数可以用 -c级 通过提供号码进行选择。在下面的示例中,我们将ARP ping数据包计数设置为5。

$ sudo arping -c 5 192.168.143.2

命令将在5 ping后停止并提供以下输出。

ARPING 192.168.142.260 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=0 time=1.366 msec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=1 time=178.268 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=2 time=128.945 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=3 time=210.814 usec60 bytes from 00:50:56:ec:77:85 (192.168.142.2): index=4 time=10.452 usec--- 192.168.142.2 statistics ---5 packets transmitted, 5 packets received, 0% unanswered (0 extra)rtt min/avg/max/std-dev = 0.010/0.379/1.366/0.498 ms

用MAC地址指定目标

arping命令还可以将MAC地址用作目标。默认情况下,IP地址用于指定目标,但作为标准操作,IP地址被解析为MAC地址和发送到MAC地址的所有ping数据包。所以目标可以是MAC地址。

$ sudo arping -c 00:50:56:ec:77:85

输出如下。不同于以IP地址为目标的源接口,根据MAC地址和ARP表应该是设备。

arping: lookup dev: No matching interface found using getifaddrs().arping: Unable to automatically find interface to use. Is it on the local LAN?arping: Use -i to manually specify interface. Guessing interface ens33.ARPING 00:50:56:ec:77:8560 bytes from 192.168.142.2 (00:50:56:ec:77:85): icmp_seq=0 time=173.855 usec60 bytes from 192.168.142.2 (00:50:56:ec:77:85): icmp_seq=1 time=76.216 usec60 bytes from 192.168.142.2 (00:50:56:ec:77:85): icmp_seq=2 time=375.998 usec60 bytes from 192.168.142.2 (00:50:56:ec:77:85): icmp_seq=3 time=176.120 usec60 bytes from 192.168.142.2 (00:50:56:ec:77:85): icmp_seq=4 time=324.211 usec--- 00:50:56:ec:77:85 statistics ---5 packets transmitted, 5 packets received, 0% unanswered (0 extra)rtt min/avg/max/std-dev = 0.076/0.225/0.376/0.109 ms

指定网络接口

一个系统可以有多个连接到不同网络的网络接口。这些接口可以是以太网卡或无线网卡等。默认情况下,arping命令根据目标IP地址、MAC地址和ARP表决定源接口。在调查之后,如果没有可靠的信息,可能会猜测接口。但是我们也可以用 -我 选项,提供接口名称。因此,在指定源接口之前,最好列出当前接口及其名称。我们可以列出与 ip链路 命令如下。

$ ip link
图片[4]-Linux arping命令教程-yiteyi-C++库

我们可以看到有两个接口名为 恩斯33 . lo接口是localhost接口,ens33是到LAN的以太网接口。因此,我们将提供ens33作为源接口。

$ sudo arping -I ens33 192.168.142.2

指定源MAC地址

默认情况下,arping命令使用默认的网络接口MAC地址。-s选项用于指定源MAC地址。

$ sudo arping -s 01:5e:56:ec:77:34 192.168.142.2
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享