首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >教你一招在 Windows、Linux和Mac中检查和清除ARP缓存

教你一招在 Windows、Linux和Mac中检查和清除ARP缓存

作者头像
网络技术联盟站
发布2023-03-13 20:28:23
发布2023-03-13 20:28:23
5K00
代码可运行
举报
运行总次数:0
代码可运行
系统中配置错误或过期的 ARP 缓存条目可能是网络连接问题的原因之一。

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

什么是 ARP 缓存?

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

我们的系统不会每次都询问路由器特定设备的位置以及它的 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 缓存表,只需键入以下命令。

代码语言:javascript
代码运行次数:0
运行
复制
arp -a

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

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

代码语言:javascript
代码运行次数:0
运行
复制
netsh interface IP delete arpcache

或者你可以简单地使用

代码语言:javascript
代码运行次数:0
运行
复制
arp -d

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

代码语言:javascript
代码运行次数:0
运行
复制
arp -d <ip-address>

输出:

代码语言:javascript
代码运行次数:0
运行
复制
C:\WINDOWS\system32>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:\WINDOWS\system32>netsh interface IP delete arpcache
Ok.

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

Linux

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

代码语言:javascript
代码运行次数:0
运行
复制
ip -s -s neigh flush all

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

代码语言:javascript
代码运行次数:0
运行
复制
arp -d <ip-address>

第三步:删除表项后,可以简单的使用下面的命令查看Linux中的ARP表。

代码语言:javascript
代码运行次数:0
运行
复制
arp -n

此命令显示整个 arp 表。

输出:

代码语言:javascript
代码运行次数:0
运行
复制
┌──(root💀kali)-[/home/geekflare]
└─# arp -d 10.0.2.1

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

10.0.2.1                       (incomplete)

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 步:在您的 Mac 中打开一个终端并使用以下命令。

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

代码语言:javascript
代码运行次数:0
运行
复制
sudo arp -a

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

代码语言:javascript
代码运行次数:0
运行
复制
sudo arp -d 192.168.29.1 ifscope en0 

第四步:清除整个缓存表

代码语言:javascript
代码运行次数:0
运行
复制
sudo arp -a -d

输出:

代码语言:javascript
代码运行次数:0
运行
复制
$ 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) deleted
192.168.2.13 (192.168.2.13) deleted
192.168.1.21 (192.168.1.21) deleted
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 ARP 缓存?
  • 什么时候清除ARP缓存?
  • Windows
  • Linux
  • Mac
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档