使用arp -a或ip neighbor show命令可查看linux系统ARP缓存,前者显示IP与MAC映射及接口信息,后者提供更清晰输出并支持状态显示;常见状态包括REACHABLE、STALE、FaiLED等,反映设备连通性;可通过arp -d删除条目,arp -s添加静态映射,结合dev限定接口或ip monitor监控变化,有助于诊断网络问题、排查IP冲突,掌握这些命令利于日常网络运维。
在Linux系统中,ARP(Address Resolution Protocol)用于将IP地址解析为对应的MAC地址。查看ARP缓存可以帮助你诊断网络连接问题、排查IP冲突或了解局域网内设备的通信情况。下面介绍如何使用命令查看ARP缓存,并解析其输出内容。
查看ARP缓存的常用命令
Linux中查看ARP缓存主要有两个命令:arp 和 ip neighbor。推荐使用较新的 ip 命令,但传统 arp 命令仍广泛使用。
1. 使用 arp 命令
arp -a
该命令列出当前系统的ARP缓存表,显示所有已解析的IP与MAC地址映射。
2. 使用 ip neighbor 命令(推荐)
ip neighbor show
这是现代Linux系统中更推荐的方式,功能更强大,输出更清晰。
arp 命令输出解析
执行 arp -a 后,输出类似如下内容:
? (192.168.1.1) at 00:1a:2b:3c:4d:5e [ether] on eth0 ? (192.168.1.100) at 00:0c:29:88:77:66 [ether] on eth0
每一行包含以下几个部分:
- 主机名或 ?:如果系统能反向解析IP为主机名,会显示名称;否则显示 ?
- IP地址:括号内的IPv4地址,表示目标设备的网络地址
- at 后的MAC地址:对应设备的物理地址,共6组十六进制数
- [ether]:表示使用以太网协议(最常见)
- on 接口名:如 eth0、wlan0,表示该ARP条目关联的网络接口
arp缓存状态说明
ARP条目可能处于不同状态,可通过 ip neighbor 命令查看:
ip neighbor show
输出中常见的状态有:
- REACHABLE:地址可达,近期通信过,条目有效
- STALE:条目过期,尚未确认设备是否仍在线,下次通信前会重新ARP探测
- DELAY:正在等待确认邻居是否可达
- FAILED:解析失败,可能设备已离线或IP无响应
- NOARP:接口禁用ARP(如本地回环或点对点链路)
实用操作建议
以下是一些常见的ARP相关操作:
- 刷新ARP缓存:可删除特定条目 arp -d 192.168.1.1
- 手动添加静态ARP条目:arp -s 192.168.1.100 00:0c:29:aa:bb:cc
- 只查看某接口的ARP表:ip neighbor show dev eth0
- 监控ARP变化:ip monitor neighbor 实时查看ARP表变动
基本上就这些。掌握arp和ip neighbor命令,能帮你快速了解局域网设备连接状态,排查网络异常。虽然ARP是底层协议,但日常运维中非常实用。不复杂但容易忽略。