网络工具-arp常用命令

Posted by 周思进 on November 25, 2019

接着文章网络工具-arp作用,下面来简单说说常用的arp命令。

arp命令用于添加、删除、显示ARP高速缓存中的内容。

一、Linux系统下

1、arp -n
显示当前的arp缓存表,该缓存映射关系也同样可以通过cat /proc/net/arp命令直接查看。

arp表

其中Flags字段,对于每一个完整的条目都会标记C;如果是永久的条目则会标记为M。

2、删除操作:
arp -d address
删除arp缓存表中的IP为address的地址映射关系

进行删除操作后,通过arp -n命令查看,对应的映射关系还在,只是硬件地址那列显示的是(incomplete),Flags标记也没有C字样了。通过cat /proc/net/arp命令查看,则flags那列显示的是0x0

3、增加ARP高速缓存表项
arp -s 10.10.37.216 44:19:B7:13:86:F8 // 目标ip 10.10.37.216 对应的硬件地址是44:19:B7:13:86:F8
这里需要注意,arp表保存的是可直接相连的主机地址,如果添加的ip地址不是同一网段的,会出现如下错误:
SIOCSARP: 网络不可达

通过手动添加的映射条目,其Flags显示带M字样。该条目表示永久存在且不会被更改。即如果有其他对应ip的设备发送arp包,设备接收后也不会更新arp缓存表。

所以这个也常常用来做防arp欺骗的保护手段。比如明确网关的mac地址和ip地址,可以手动设置对应的映射关系。

二、WIN系统下

win系统下基本和linux下没什么差别

1、arp -a
如果环境中存在mac地址冲突,或者目标设备多网卡响应策略原因,可能出现查询到的mac地址并不是目标IP地址对应的mac地址,可以通过arp -a来查看下,也可以直接指定目标ip查看,如arp -a ip

当然arp可能随时被更新掉,最有效的可能还是直接通过抓包来确认。

2、arp -d
清除所有arp缓存
也可以指定清除某个ip的映射关系,如arp -d ip

3、arp -s 也是同样的操作