如何在Windows、Linux和Mac上检查和清除ARP缓存?

系统中配置不正确或过期的ARP缓存条目可能是网络连接问题的原因之一。

您是否知道清除系统中的ARP缓存可以修复加载问题和连接错误?

本文将介绍如何在不同操作系统中检查和清除ARP缓存。

但在此之前…

什么是ARP缓存?

ARP代表地址解析协议(Address Resolution Protocol),负责发现MAC地址并将它们与IP addresses进行映射,以便成功与本地网络上的其他系统通信。该协议工作在数据链路层和网络层之间。

我们的系统不需要每次都向路由器询问特定设备位于何处以及其MAC地址是什么,而是直接使用先前解析的IP地址进行连接。

当我们的系统使用ARP协议找到特定IP地址的MAC地址时,它们将被存储在一个表中以供将来使用。这个表称为ARP缓存。它包含已知IP地址及其MAC地址的列表。

ARP请求是广播的,ARP回复是单播的。

何时清除ARP缓存?

如果网络连接设备的IP地址发生更改,ARP条目可能会损坏或过期,并且新条目可能不会总是覆盖数据库中过期的条目。

结果可能影响网络性能,并可能导致加载或连接问题。在这种情况下,您可以简单地清除ARP缓存以解决问题,因为清除ARP缓存将导致您的所有请求重新经过整个ARP过程。在此过程中,新条目将保存在ARP表中。

在重新构建ARP缓存表时可能会出现一些错误,因此不建议始终删除ARP缓存。相反,您还可以重新启动路由器或系统以解决连接问题。

如何清除ARP缓存?

我们可以通过使用命令行轻松清除任何操作系统中的ARP缓存。让我们开始吧。

Windows

步骤1:打开命令提示符并以管理员身份运行。

步骤2:要查看ARP缓存表,只需输入以下命令。

arp -a

此命令显示IP地址及其关联的MAC地址。

步骤3:接下来,要删除缓存表,可以使用netsh实用程序。

netsh interface IP delete arpcache

或者您可以简单地使用

arp -d

步骤4:如果要删除缓存中的特定条目而不是整个表。

arp -d 

示例输出:

C:WINDOWSsystem32>arp -a

Interface: 192.168.29.64 --- 0xd
  Internet Address      Physical Address      Type
  192.168.29.1          a8-da-0c-e8-0e-e6     dynamic
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static

Interface: 192.168.56.1 --- 0x14
  Internet Address      Physical Address      Type
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  239.255.255.250       01-00-5e-7f-ff-fa     static

C:WINDOWSsystem32>netsh interface IP delete arpcache
Ok.

如果使用netsh实用程序清除缓存表,将收到“OK”作为响应。

Linux

步骤1:打开终端并使用以下IP实用程序命令清除整个ARP表。

ip -s -s neigh flush all

步骤2:如果要删除特定地址的ARP记录,使用arp实用程序。

arp -d 

步骤 3:在删除条目后,您可以使用以下命令在Linux中查看ARP表。

arp -n

该命令会显示整个ARP表。

示例输出:

┌──(root💀kali)-[/home/yaoweibin]
└─# arp -d 10.0.2.1

┌──(root💀kali)-[/home/yaoweibin]
└─# arp -n
Address          HWtype         HWaddress           Flags Mask        Interface

10.0.2.1                       (不完整)

10.0.2.2         ether       01:00:5e:00:00:fc         C                 eth0
10.0.2.3         ether       a8:da:0c:e8:0e:e6         C                 eth0

在这里,您可以观察到特定地址的缓存条目已被清除。

Mac

步骤 1:打开一个 terminal in your mac and use the following commands

步骤 2:查看现有的ARP条目。

sudo arp -a

步骤 3:删除特定接口的缓存

sudo arp -d 192.168.29.1 ifscope en0 

步骤 4:清除整个缓存表

sudo arp -a -d

示例输出:

$ sudo arp -a

? (192.168.29.1) at 01:00:5e:00:00:fc on en0 ifscope [ethernet]
? (192.168.2.13) at a8:da:0c:e8:0e:e6 on en0 ifscope [ethernet]
? (192.168.1.21) at 01:00:5e:00:0e:16 on en0 ifscope permanent [ethernet]

$ sudo arp -a -d

192.168.29.1 (192.168.29.1) 已删除
192.168.2.13 (192.168.2.13) 已删除
192.168.1.21 (192.168.1.21) 已删除

结论

如果您无法ping通同一网络中的特定IP地址,即使它们正常工作,这表明出现了问题。您的ARP缓存表可能需要重新构建。

我希望您在学习如何清除不同操作系统中的ARP缓存方面会发现本文有所帮助。

您可能还对了解如何 change DNS servers for faster browsing 或 how to detect Rootkits in Windows, Linux and Mac 感兴趣。

类似文章