arp缓存就是IP地址和MAC地址关系缓存列表。在Windows下 arp -d [$ip] 不指定IP地址时清除所有arp缓存。在Linux下 arp -d $ip 必须指定IP地址才能执行这条命令的此参数,所有在Linux系统下 arp -d $ip 命令只能清除一个IP地址的对应MAC地址缓存,当然可以使用组合命令操作,这也算是Linux的一个优点吧。
组合命令清除所有arp缓存:
arp -n|awk '/^[1-9]/{system("arp -d "$1)}'
其实Linux也有内部命令清除所有arp缓存,但是不太好记忆,用的人很少。以下命令清除eth0接口的所有arp缓存。
ip neigh flush dev eth0
Linux 清除arp缓存是把列表标记为(incomplete),在下一次系统清理垃圾是会清除。