ARP( Address Resolution Protocol) 地址解析解析,用来将 IP 地址解析为 MAC 地址的协议。

主机会维护一张 ARP 表,存储 IP 地址和 MAC 地址映射关系。

arp

直接执行 arp 会列出系统当前的 arp 记录:

arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.236.151.50            ether   50:9a:4c:2d:--:--   C                     eth0
172.17.0.2               ether   02:42:ac:11:00:02   C                     docker0
10.236.151.83            ether   ac:87:a3:17:72:26   C                     eth0
172.25.0.2               ether   02:42:ac:19:00:02   C                     br-8ff872eb50bd

如果有多张网卡,可以使用 -i 指定网卡:

arp -i eth0

使用 -a 参数使用 BSD 风格输出:

$ arp -a
? (10.236.151.19) at 50:9a:4c:2d:--:-- [ether] on eth0
? (10.236.151.200) at e4:54:e8:cd:--:-- [ether] on eth0

删除 ARP 记录,可以使用 -d 参数:

sudo arp -d 192.168.0.1

删除之后 ARP 记录就会显示为 incomplete。

添加 ARP 记录:

sudo arp -s 192.168.0.1 12:34:56:78:90:ab

如果要批量添加,可以从文件中读取添加,可以先准备好一个文件,然后其中添加 IP 和 MAC 地址:

192.168.0.201 11:22:33:44:55:66
192.168.0.202 12:23:34:45:56:67

最后使用 -f 参数:

sudo arp -f arp_list.txt