Linux arp 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习 Linux 的 arp 命令,以及如何使用它来管理地址解析协议(ARP)缓存。arp 命令是 Linux 中的一个基础网络工具,允许你查看、添加和删除 ARP 缓存中的条目,这些条目将 IP 地址映射到本地网络上对应的 MAC 地址。通过实际示例,你将探索 arp 命令的基本语法和选项,并学习如何有效管理 ARP 缓存以排查网络连接问题。本实验涵盖了 arp 命令的核心内容,为你提供了优化 Linux 系统网络通信所需的知识和技能。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/RemoteAccessandNetworkingGroup(["`Remote Access and Networking`"]) linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("`Network Monitoring`") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("`IP Managing`") subgraph Lab Skills linux/netstat -.-> lab-422554{{"`Linux arp 命令实战示例`"}} linux/ip -.-> lab-422554{{"`Linux arp 命令实战示例`"}} end

理解 arp 命令的作用

在这一步中,你将学习 Linux 中 arp 命令的作用。arp 命令用于管理地址解析协议(ARP)缓存,这是一个将 IP 地址映射到本地网络上对应 MAC 地址的表格。

操作系统使用 ARP 缓存来快速查找与给定 IP 地址关联的 MAC 地址,这是网络通信所必需的。当一台主机需要向同一网络上的另一台主机发送数据时,它首先会在 ARP 缓存中查找 MAC 地址。如果未找到 MAC 地址,主机会向网络发送 ARP 请求以发现该 MAC 地址。

让我们探索 arp 命令的基本用法:

## 显示当前的 ARP 缓存
labex@ubuntu:~/project$ arp -a
? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.100) at 66:77:88:99:aa:bb [ether] on eth0

输出显示了 ARP 缓存中的 IP 地址及其对应的 MAC 地址。

示例输出:

? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.100) at 66:77:88:99:aa:bb [ether] on eth0

此输出表明 ARP 缓存中包含两个条目:一个用于 IP 地址 192.168.1.1,其 MAC 地址为 00:11:22:33:44:55;另一个用于 IP 地址 192.168.1.100,其 MAC 地址为 66:77:88:99:aa:bb

探索 arp 命令的基本语法和选项

在这一步中,你将学习 Linux 中 arp 命令的基本语法和选项。

arp 命令的基本语法如下:

arp [options] [hostname]

以下是 arp 命令的一些常见选项:

  • -a--all:显示当前的 ARP 缓存。
  • -d--delete:从 ARP 缓存中删除一个条目。
  • -s--set:手动向 ARP 缓存中添加一个条目。
  • -i--interface:指定要使用的网络接口。
  • -n--numeric:显示 IP 地址而不是主机名。

让我们通过一些示例来探索如何使用这些选项的 arp 命令:

## 显示 ARP 缓存
labex@ubuntu:~/project$ arp -a
? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.100) at 66:77:88:99:aa:bb [ether] on eth0

## 从 ARP 缓存中删除一个条目
labex@ubuntu:~/project$ sudo arp -d 192.168.1.100
labex@ubuntu:~/project$ arp -a
? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0

## 手动向 ARP 缓存中添加一个条目
labex@ubuntu:~/project$ sudo arp -s 192.168.1.200 aa:bb:cc:dd:ee:ff
labex@ubuntu:~/project$ arp -a
? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.200) at aa:bb:cc:dd:ee:ff [ether] on eth0

示例输出:

? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.100) at 66:77:88:99:aa:bb [ether] on eth0
? (192.168.1.200) at aa:bb:cc:dd:ee:ff [ether] on eth0

在上面的示例中,我们首先使用 arp -a 命令显示当前的 ARP 缓存。然后,使用 arp -d 命令删除了 IP 地址 192.168.1.100 的条目。最后,使用 arp -s 命令手动添加了一个新的条目,IP 地址为 192.168.1.200,MAC 地址为 aa:bb:cc:dd:ee:ff

使用 arp 命令管理 ARP 缓存

在这一步中,你将学习如何使用 arp 命令管理 ARP 缓存。

操作系统使用 ARP 缓存来存储 IP 地址与其对应 MAC 地址之间的映射关系。随着时间的推移,ARP 缓存可能会变得过时,因此能够有效地管理它非常重要。

让我们探索一些管理 ARP 缓存的常见任务:

## 显示当前的 ARP 缓存
labex@ubuntu:~/project$ arp -a
? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.200) at aa:bb:cc:dd:ee:ff [ether] on eth0

## 清除整个 ARP 缓存
labex@ubuntu:~/project$ sudo arp -d -a
labex@ubuntu:~/project$ arp -a
(no entries)

## 向 ARP 缓存中添加一个新条目
labex@ubuntu:~/project$ sudo arp -s 192.168.1.250 ff:ee:dd:cc:bb:aa
labex@ubuntu:~/project$ arp -a
? (192.168.1.250) at ff:ee:dd:cc:bb:aa [ether] on eth0

## 刷新 ARP 缓存中的现有条目
labex@ubuntu:~/project$ sudo arp -s 192.168.1.250 00:11:22:33:44:55
labex@ubuntu:~/project$ arp -a
? (192.168.1.250) at 00:11:22:33:44:55 [ether] on eth0

示例输出:

? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.200) at aa:bb:cc:dd:ee:ff [ether] on eth0
? (192.168.1.250) at 00:11:22:33:44:55 [ether] on eth0

在上面的示例中,我们首先使用 arp -a 命令显示当前的 ARP 缓存。然后,使用 arp -d -a 命令清除整个 ARP 缓存。接着,使用 arp -s 命令向 ARP 缓存中添加一个新条目,IP 地址为 192.168.1.250,MAC 地址为 ff:ee:dd:cc:bb:aa。最后,我们刷新了 ARP 缓存中 IP 地址为 192.168.1.250 的现有条目,将其 MAC 地址更新为 00:11:22:33:44:55

总结

在本实验中,你首先学习了 Linux 中 arp 命令的作用,它用于管理地址解析协议(ARP)缓存。ARP 缓存是一个将 IP 地址映射到本地网络上对应 MAC 地址的表格,使操作系统能够快速查找与给定 IP 地址关联的 MAC 地址,从而实现网络通信。

接下来,你探索了 arp 命令的基本语法和选项,包括显示当前的 ARP 缓存、删除条目、手动添加条目、指定网络接口以及显示 IP 地址而非主机名。这些基本命令和选项为你提供了在 Linux 系统上有效管理 ARP 缓存所需的工具。

Linux 命令速查表

您可能感兴趣的其他 Linux 教程