如何在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 感兴趣。