在Linux中怎么查看ARP表?Linux 查看ARP表完整教程

AI 概述
一、Linux 查看 ARP 表的基础命令:arp 命令1. 基础查看:arp 命令(默认显示所有 ARP 条目)2. 显示详细信息:arp -a 命令(包含主机名解析)3. 仅显示 IPv4 条目:arp -4 命令(排除 IPv6 干扰)4. 以数字形式显示:arp -n 命令(禁用主机名解析)二、Linux 查看 ARP 表的进阶命令:ip neigh 命令1. ...
目录
文章目录隐藏
  1. 一、Linux 查看 ARP 表的基础命令:arp 命令
  2. 二、Linux 查看 ARP 表的进阶命令:ip neigh 命令
  3. 三、Linux 查看 ARP 表结果的关键解读
  4. 四、Linux 查看 ARP 表的场景化应用
  5. 五、Linux 查看 ARP 表的常见问题与解决
  6. 六、总结

在 Linux 系统中,ARP(地址解析协议)表记录了 IP 地址与物理 MAC 地址的对应关系,是网络通信中实现数据链路层寻址的关键。掌握 Linux 查看 ARP 表的方法,能帮助我们排查网络故障(如 IP 冲突、ARP 欺骗)、验证设备连接状态,对网络维护至关重要。本文将详细介绍 Linux 查看 ARP 表的多种实用命令、结果解读技巧及进阶操作,适用于 CentOS、Ubuntu、Debian 等主流 Linux 发行版。

在 Linux 中怎么查看 ARP 表?Linux 查看 ARP 表完整教程

一、Linux 查看 ARP 表的基础命令:arp 命令

arp 命令是 Linux 系统中查看和管理 ARP 表最常用的工具,无需额外安装,默认集成在所有 Linux 发行版中,通过不同参数可实现多样化的 ARP 表查看需求。

1. 基础查看:arp 命令(默认显示所有 ARP 条目)

直接在终端输入 arp 命令,即可快速完成 Linux 查看 ARP 表的基础操作,显示当前系统 ARP 表中的所有条目,包括 IP 地址、MAC 地址、设备接口及条目类型。

arp

执行后输出结果通常包含以下列:

  • Address:目标设备的 IP 地址(如 192.168.1.1);
  • HWtype:硬件类型,通常为 ether(以太网);
  • HWaddress:目标设备的 MAC 地址(如 00:1c:42:xx:xx:xx);
  • Flags Mask:条目标记,C 表示永久(静态)条目,M 表示动态条目;
  • Iface:对应的网络接口(如 eth0、ens33),表示该 ARP 条目通过哪个网卡学习到。

这种 Linux 查看 ARP 表的方式简洁高效,适合快速了解当前网络中的设备连接情况。

2. 显示详细信息:arp -a 命令(包含主机名解析)

若需要在 Linux 查看 ARP 表时同时显示主机名(通过 DNS 或 /etc/hosts 解析),可使用arp -a命令,输出结果会将 IP 地址对应的主机名一并展示,便于识别设备身份。

arp -a

例如,输出中可能出现 router.local (192.168.1.1),其中 router.local 是 192.168.1.1 的主机名。该命令尤其适合在局域网内有明确主机名规划的场景,帮助快速定位路由器、服务器等关键设备。

3. 仅显示 IPv4 条目:arp -4 命令(排除 IPv6 干扰)

部分 Linux 系统默认会同时记录 IPv4 和 IPv6 的 ARP 条目(IPv6 中对应 NDP 邻居表),若需专注于 Linux 查看 ARP 表中的 IPv4 条目,可使用arp -4命令,过滤掉 IPv6 相关内容,让结果更简洁。

arp -4

反之,若需查看 IPv6 邻居表(类似 ARP 表功能),可使用 arp -6 命令,但需注意这不属于传统 ARP 表范畴,仅适用于 IPv6 网络环境。

4. 以数字形式显示:arp -n 命令(禁用主机名解析)

在网络环境不稳定或 DNS 解析缓慢时,使用arp -n命令进行 Linux 查看 ARP 表,可禁用主机名解析,直接以 IP 地址形式显示所有条目,避免因解析延迟导致命令执行卡顿。

arp -n

该命令输出格式与基础arp命令一致,但 Address 列仅显示 IP 地址,不尝试解析主机名,适合网络故障排查时快速获取 ARP 表数据。

二、Linux 查看 ARP 表的进阶命令:ip neigh 命令

ip neigh 命令是 Linux 系统中更现代的网络管理工具(属于 iproute2 套件),功能比 arp 命令更强大,除了查看 ARP 表,还能直接管理 ARP 条目(如添加、删除),是运维人员常用的 Linux 查看 ARP 表进阶工具。

1. 基础查看:ip neigh 命令(显示所有邻居条目)

在终端输入ip neigh命令,即可完成 Linux 查看 ARP 表的操作,其输出结果包含 ARP 表(IPv4)和 NDP 邻居表(IPv6),条目状态标注更清晰。

ip neigh

输出结果主要包含三部分:

  • IP 地址:目标设备的 IP(如 192.168.1.100);
  • 状态:如 REACHABLE(可访问,ARP 条目有效)、STALE(过期,需重新探测)、FAILED(探测失败);
  • MAC 地址与接口:如 lladdr 00:24:81:xx:xx:xx dev eth0,明确标注 MAC 地址和对应网卡。

通过状态字段,我们能快速判断 ARP 条目是否有效,例如 STALE 状态的条目可能导致网络通信延迟,需重点关注。

2. 过滤特定接口的 ARP 表:ip neigh show dev 接口名

若 Linux 系统有多个网络接口(如 eth0 用于内网,eth1 用于外网),可通过ip neigh show dev接口名命令,针对性查看某一接口的 ARP 表,避免不同网络的条目混淆。

ip neigh show dev ens33

该命令仅显示通过 ens33 接口学习到的 ARP 条目,适合多网卡服务器的精细化网络排查,例如定位某一网卡连接的设备是否正常。

3. 查看特定 IP 的 ARP 条目:ip neigh show 目标 IP

当需要确认某一特定 IP 对应的 MAC 地址时,可使用 ip neigh show 目标 IP 命令精准查询,无需在完整 ARP 表中手动查找,大幅提升 Linux 查看 ARP 表的效率。

ip neigh show 192.168.1.1

若目标 IP 存在于 ARP 表中,会显示其 MAC 地址、状态及对应接口;若不存在,则输出空结果,可据此判断该 IP 是否与当前主机有过通信。

三、Linux 查看 ARP 表结果的关键解读

完成 Linux 查看 ARP 表后,正确解读结果是排查网络问题的核心,需重点关注以下几个维度:

1. 条目类型:动态(dynamic)与静态(static)

  • 动态条目:默认由系统自动学习生成,生命周期通常为 10-20 分钟(超时后自动删除),在 arp 命令输出中标记为 M,ip neigh中无特殊标注;
  • 静态条目:通过命令手动添加(如 arp -s 192.168.1.1 00:1c:42:xx:xx:xx),永久有效,arp 命令中标记为 C,ip neigh中显示为 PERMANENT。

若发现不应存在的静态条目,需警惕 ARP 欺骗攻击,可能是攻击者手动添加虚假 IP-MAC 对应关系。

2. 状态字段(ip neigh 命令特有)

  • REACHABLE:正常状态,表示该 IP 对应的设备近期有通信,ARP 条目有效;
  • STALE:条目过期,系统未收到该设备的最新 ARP 响应,下次通信前需重新发送 ARP 请求;
  • FAILED:ARP 探测失败,可能是目标设备离线、IP 冲突或网络中断;
  • INCOMPLETE:正在发送 ARP 请求,尚未收到响应,可能是目标设备不存在或网络拥堵。

通过状态字段,可快速定位网络异常点,例如大量 FAILED 状态的条目可能预示局域网内存在设备故障。

3. MAC 地址唯一性

正常情况下,一个 IP 地址应对应唯一的 MAC 地址,若 Linux 查看 ARP 表时发现同一 IP 对应多个 MAC 地址,或多个 IP 对应同一 MAC 地址,可能存在 IP 冲突或 ARP 欺骗。例如,若网关 IP(192.168.1.1)对应两个不同 MAC 地址,需立即排查是否有设备伪造网关 ARP 信息。

四、Linux 查看 ARP 表的场景化应用

1. 排查 IP 冲突问题

当某台主机提示 IP 冲突时,通过 Linux 查看 ARP 表可快速定位冲突设备:

  1. 执行arp -n查看冲突 IP(如 192.168.1.10)对应的 MAC 地址;
  2. 在交换机上通过 MAC 地址定位端口,找到占用该 IP 的设备;
  3. 或使用 ping 192.168.1.10 后,执行 arp -n | grep 192.168.1.10 确认 MAC,进而排查设备。

2. 检测 ARP 欺骗攻击

ARP 欺骗会导致 ARP 表中出现虚假 IP-MAC 对应关系,可通过定期 Linux 查看 ARP 表并对比正常记录:

  1. 正常时记录网关 IP(如 192.168.1.1)的 MAC 地址(如 00:0f:xx:xx:xx:xx);
  2. 若后续 arp -n | grep 192.168.1.1 显示的 MAC 地址异常,可能遭遇 ARP 欺骗;
  3. 此时可手动添加静态 ARP 条目(arp -s 192.168.1.1 00:0f:xx:xx:xx:xx)临时修复。

3. 验证设备连接状态

在部署局域网设备(如摄像头、服务器)后,通过 Linux 查看 ARP 表确认设备是否正常通信:

  1. 执行ip neigh show dev eth0查看 eth0 接口的 ARP 表;
  2. 若目标设备 IP(如 192.168.1.20)状态为 REACHABLE,表示连接正常;
  3. 若状态为 INCOMPLETE 或无该 IP 条目,需检查设备供电、网络接线及 IP 配置。

五、Linux 查看 ARP 表的常见问题与解决

1. 执行 arp 命令提示 “command not found”

  • 原因:部分极简 Linux 系统(如 Alpine Linux)未默认安装 arp 工具(属于 net-tools 套件);
  • 解决:Ubuntu/Debian 系统执行apt install net-tools,CentOS/RHEL 系统执行yum install net-tools,安装后即可正常使用 arp 命令进行 Linux 查看 ARP 表。

2. ip neigh 命令无输出或显示空结果

  • 原因:当前系统未与其他设备建立通信,ARP 表为空;或网络接口未启用;
  • 解决:先执行 ping 命令与目标设备通信(如 ping 192.168.1.1),再重新执行 ip neigh;若仍无结果,检查网络接口是否启用(ip link show),确保网卡处于 UP 状态。

3. ARP 表条目频繁消失或状态变为 STALE

  • 原因:ARP 缓存超时时间过短,或目标设备未正确响应 ARP 请求;
  • 解决:查看 ARP 超时配置(cat /proc/sys/net/ipv4/neigh/default/gc_stale_time),默认通常为 60 秒;若需延长,可执行echo 120 > /proc/sys/net/ipv4/neigh/default/gc_stale_time(临时生效),或修改/etc/sysctl.conf永久配置。

六、总结

Linux 查看 ARP 表是网络运维的基础技能,arp 命令适合快速查看基础信息,ip neigh命令则提供更详细的状态和精细化过滤功能,两者结合可满足不同场景需求。在实际应用中,不仅要掌握 Linux 查看 ARP 表的方法,更要学会解读结果中的条目类型、状态及 MAC 地址信息,才能有效排查 IP 冲突、ARP 欺骗等网络问题。建议定期备份正常的 ARP 表记录(如arp -n > arp_backup.txt),以便出现异常时快速对比,提升网络故障排查效率。

以上关于在Linux中怎么查看ARP表?Linux 查看ARP表完整教程的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 在Linux中怎么查看ARP表?Linux 查看ARP表完整教程

发表回复