菜鸟科技网

arp show命令如何查看和管理ARP缓存?

arp show 是一个用于查看和管理系统 ARP (Address Resolution Protocol, 地址解析协议) 缓存的命令,它不是一个 Linux 或 Windows 的原生命令,而是 Arpwatch 工具包中的一个命令行工具。

arp show命令如何查看和管理ARP缓存?-图1
(图片来源网络,侵删)

什么是 ARP?

在深入命令之前,先简单理解一下 ARP 的作用:

  • 网络层 (Layer 3) 使用 IP 地址进行通信,168.1.100
  • 数据链路层 (Layer 2) 使用 MAC 地址(物理地址)进行通信,00:1A:2B:3C:4D:5E
  • ARP 就是一个协议,它的作用是在同一个局域网内,根据一个设备的 IP 地址 来查询其对应的 MAC 地址,这个过程就像在问:“这个 IP 地址是谁的?请告诉我你的 MAC 地址。”

每个设备都会维护一个 ARP 缓存表,记录了 IP 地址和 MAC 地址的映射关系,以提高通信效率,避免每次通信都发送广播查询。


arp show 命令详解

arp show 命令主要用于查看和管理由 Arpwatch 监控的 ARP 条目,Arpwatch 是一个网络监控工具,它会被动地监听网络流量,记录 ARP 交互,并检测可疑的 ARP 活动(如 ARP 欺骗)。

基本语法

arp show [选项]

常用选项和功能

选项 描述 示例
-a 显示所有 ARP 条目,这是最常用的选项,等同于不带任何选项直接运行 arp show arp show -a
-n 以数字形式显示地址,默认情况下,它会尝试将 IP 地址解析为主机名,此选项可以禁用反向解析,使输出速度更快。 arp show -n
-d 删除指定的 ARP 条目,需要管理员权限 (sudo)。 sudo arp show -d <ip_address>
-f <文件> 从指定文件中读取 ARP 条目,这个文件通常由 Arpwatch 生成,用于恢复或初始化 ARP 缓存。 arp show -f arp.dat
-v 显示详细信息,提供更详细的输出,包括接口信息等。 arp show -v
-i <接口> 只显示指定网络接口的 ARP 条目 arp show -i eth0
-N <网络/掩码> 只显示属于指定网络的 ARP 条目 arp show -N 192.168.1.0/24

输出字段解释

arp show -a 的输出通常包含以下几列:

arp show命令如何查看和管理ARP缓存?-图2
(图片来源网络,侵删)
$ arp show -a
Address     HWtype  HWaddress         Flags Mask     Iface
192.168.1.1  ether   00:11:22:33:44:55 C              eth0
192.168.1.101  ether   0A:1B:2C:3D:4E:5F C              eth0
  • Address: 目标主机的 IP 地址。
  • HWtype: 硬件地址类型,对于以太网通常是 ether
  • HWaddress: 对应的 MAC 地址(物理地址)。
  • Flags: 标志位,表示 ARP 条目的状态。
    • C: Complete (完整),表示这是一个有效的、可用的条目。
    • M: Permanent (永久),这是一个静态条目,不会被超时机制删除。
    • P: Publish (发布),该条目是本机发布的。
    • S: Static (静态),与 M 类似,表示手动添加的静态条目。
  • Mask: 子网掩码,通常在 arp show 的输出中为空或显示为 ,因为 Arpwatch 的重点在于条目本身,而不是路由。
  • Iface: 接入该 ARP 条目的网络接口名称,如 eth0, wlan0 等。

与系统原生 arp 命令的对比

在 Linux 系统中,通常使用 ip neigharp 命令来管理 ARP 缓存。arp show 是 Arpwatch 工具的一部分,功能上与它们有重叠,但也有区别。

特性 arp show (Arpwatch) ip neigh (现代 Linux) arp (传统 Linux)
所属工具 Arpwatch 监控工具 iproute2 套件 net-tools 套件
主要用途 查看 Arpwatch 记录的条目,用于审计和安全 现代、功能强大的网络邻居管理工具 传统的 ARP 缓存管理工具
推荐度 在使用 Arpwatch 时使用 推荐用于日常管理 已被 ip neigh 取代,不推荐
查看 ARP arp show -a ip neigh show arp -a
删除 ARP arp show -d <ip> sudo ip neigh del <ip> dev <iface> sudo arp -d <ip>

为什么 ip neigh 更推荐? ip neighiproute2 的一部分,是现代 Linux 系统中管理网络邻居(包括 ARP、NDP 等)的标准工具,它更稳定、功能更强大,并且是未来的发展方向。


实际应用场景

  1. 网络故障排查: 当你无法 ping 通局域网内的另一台电脑时,可以检查 ARP 缓存中是否有对应的条目,以及 MAC 地址是否正确。

    # 查看特定 IP 的 ARP 条目
    arp show | grep 192.168.1.50
    # 或者使用系统命令
    ip neigh show 192.168.1.50
  2. 发现 ARP 欺骗: Arpwatch 的核心功能就是检测 ARP 异常,如果你看到同一个 IP 地址对应了多个不同的 MAC 地址,或者一个 MAC 地址对应了多个 IP 地址,这很可能是 ARP 欺骗攻击的迹象。

    arp show命令如何查看和管理ARP缓存?-图3
    (图片来源网络,侵删)
    # Arpwatch 会通过邮件或日志报告这些异常
    # 你也可以手动检查 arp show 的输出
    arp show -a | sort -k1,1n | uniq -c -d -f 0
  3. 手动管理 ARP 缓存: 在某些网络环境下,你可能需要手动添加静态 ARP 条目,以确保网络通信的稳定和安全(防止 ARP 欺骗),虽然 arp show 本身不用于添加,但 ip neigh 可以:

    # 添加一个静态 ARP 条目
    sudo ip neigh add 192.168.1.200 lladdr 00:AA:BB:CC:DD:EE dev eth0 nud permanent
  • arp showArpwatch 工具包的一部分,主要用于查看 Arpwatch 监控到的 ARP 条目,常用于安全审计和异常检测。
  • 对于日常的 Linux 系统管理,推荐使用更现代的 ip neigh 命令来查看和管理 ARP 缓存。
  • 理解 ARP 协议的工作原理对于网络排错和安全防护至关重要。
分享:
扫描分享到社交APP
上一篇
下一篇