📜  Linux 中的 arp 命令和示例(1)

📅  最后修改于: 2023-12-03 15:32:40.859000             🧑  作者: Mango

Linux 中的 arp 命令和示例

ARP(Address Resolution Protocol)地址解析协议,是用于解析网络层地址和数据链路层地址之间映射关系的协议。当网络层的一个数据包需要发送到目标主机时,需要通过ARP获取对应的MAC地址,以便在数据链路层进行发送。

在Linux系统中,可以使用arp命令来查询和管理ARP缓存表。

命令格式
arp [-v] [-n] [-i device] [-d] [-s] [address] [hw_addr]
命令参数说明
  • -v:显示详细信息;
  • -n:显示IP地址而不解析主机名;
  • -i device:指定网络接口,仅对指定网络接口上的ARP缓存进行操作;
  • -d:删除某个ARP缓存表项;
  • -s:添加或修改ARP缓存表项;
  • address:需要查询、添加或修改的IP地址;
  • hw_addr:需要添加或修改的MAC地址。
示例
查询ARP缓存表
$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.1              ether   xx:xx:xx:xx:xx:xx   C                     eth0
192.168.1.111            ether   xx:xx:xx:xx:xx:xx   C                     eth0

通过arp命令可以查看ARP缓存表中的所有项,包括IP地址、MAC地址、标记以及所在的网络接口。

  • Address:IP地址;
  • HWtype:硬件类型,例如ether表示以太网;
  • HWaddress:MAC地址;
  • Flags:标记,C表示缓存中的ARP表项已解析,D表示删除的表项,P表示永久的ARP项;
  • Mask:网络掩码;
  • Iface:所在的网络接口。
添加ARP缓存表项
$ sudo arp -s 192.168.1.100 00:11:22:33:44:55 -i eth0

通过-s参数可以添加或修改ARP缓存表项。在示例中,将192.168.1.100的MAC地址设置为00:11:22:33:44:55,并将其添加到eth0网络接口的ARP缓存表中。

删除ARP缓存表项
$ sudo arp -d 192.168.1.100

通过-d参数可以删除ARP缓存表中指定的项。在示例中,删除了192.168.1.100所对应的ARP缓存表项。

总结

arp命令是Linux系统中管理ARP缓存表的工具之一,可以方便地查询、添加和删除ARP缓存表项。在网络调试和故障排除中,ARP缓存表也是一个重要的参考依据。