侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux arp命令教程:如何查看和管理ARP缓存(附实例教程和注意事项)

Linux arp命令介绍

arp命令是Address Resolution Protocol(地址解析协议)的缩写,它是一种用来将网络层的IP地址转换为链路层的MAC地址的协议。arp命令可以用来显示和修改本地主机的ARP缓存,也就是存储了IP地址和MAC地址之间的映射关系的表。arp命令可以帮助我们查看和管理本地网络中的设备,以及检测网络中是否存在IP地址冲突或者ARP欺骗等安全问题。

Linux arp命令适用的Linux版本

arp命令是一个标准的Linux命令,它适用于大多数的Linux发行版,如Ubuntu、Debian、CentOS、Fedora等。不过,一些较新的Linux发行版,如CentOS 8,已经不再使用arp命令,而是使用ip neigh命令来代替。ip neigh命令是iproute2套件的一部分,它提供了更多的功能和选项,可以用来显示和修改邻居缓存,也就是存储了IP地址和MAC地址之间的映射关系的表。如果你使用的是CentOS 8或者其他不支持arp命令的Linux发行版,你可以使用以下命令来安装iproute2套件:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install iproute2

如果你使用的是CentOS 7或者其他支持arp命令的Linux发行版,你可以使用以下命令来安装arp命令:

[linux@bashcommandnotfound.cn ~]$ sudo yum install net-tools

Linux arp命令的基本语法

arp命令的基本语法格式如下:

arp [选项] [参数]

Linux arp命令的常用选项或参数说明

arp命令的常用选项或参数如下表所示:

选项或参数说明
-a显示所有的ARP缓存
-d删除指定的ARP缓存
-s添加一个静态的ARP缓存
-n不显示主机名,只显示IP地址
-v显示详细的信息
-i指定使用的网络接口
-D使用硬件地址作为主机名
-f从指定的文件中读取ARP缓存

Linux arp命令的实例

下面是一些使用arp命令的实例:

实例1:显示所有的ARP缓存

命令:

[linux@bashcommandnotfound.cn ~]$ arp -a

输出:

? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.2) at 00:11:22:33:44:56 [ether] on eth0
? (192.168.1.3) at 00:11:22:33:44:57 [ether] on eth0

注释:这个命令会显示本地主机的ARP缓存,也就是本地主机已经知道的IP地址和MAC地址之间的映射关系。每一行表示一个ARP缓存条目,包括以下信息:

  • ? 表示主机名,如果没有解析出主机名,就用?代替
  • (192.168.1.1) 表示IP地址
  • at 00:11:22:33:44:55 表示MAC地址
  • [ether] 表示链路层的类型,通常是以太网
  • on eth0 表示网络接口的名称

实例2:显示指定的ARP缓存

命令:

[linux@bashcommandnotfound.cn ~]$ arp 192.168.1.2

输出:

Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.2              ether   00:11:22:33:44:56   C                     eth0

注释:这个命令会显示指定的IP地址的ARP缓存,也就是本地主机已经知道的该IP地址和MAC地址之间的映射关系。每一列表示一个ARP缓存条目的信息,包括以下信息:

  • Address 表示IP地址
  • HWtype 表示链路层的类型,通常是以太网
  • HWaddress 表示MAC地址
  • Flags 表示ARP缓存的状态,C表示完全的,M表示永久的,P表示发布的
  • Mask 表示子网掩码
  • Iface 表示网络接口的名称

实例3:删除指定的ARP缓存

命令:

[linux@bashcommandnotfound.cn ~]$ sudo arp -d 192.168.1.2

输出:

arp: 192.168.1.2 deleted.

注释:这个命令会删除指定的IP地址的ARP缓存,也就是清除本地主机已经知道的该IP地址和MAC地址之间的映射关系。这个命令需要root权限,否则会提示Permission denied。

实例4:添加一个静态的ARP缓存

命令:

[linux@bashcommandnotfound.cn ~]$ sudo arp -s 192.168.1.4 00:11:22:33:44:58

输出:

注释:这个命令会添加一个静态的ARP缓存,也就是手动指定一个IP地址和MAC地址之间的映射关系,并且不会被自动更新或删除。这个命令需要root权限,否则会提示Permission denied。这个命令可以用来解决一些网络中的IP地址冲突或者ARP欺骗等安全问题。

实例5:从指定的文件中读取ARP缓存

命令:

[linux@bashcommandnotfound.cn ~]$ sudo arp -f arp.txt

输出:

注释:这个命令会从指定的文件中读取ARP缓存,也就是批量添加或修改本地主机的ARP缓存。这个命令需要root权限,否则会提示Permission denied。指定的文件的格式应该是每一行一个ARP缓存条目,如下所示:

192.168.1.5 ether 00:11:22:33:44:59
192.168.1.6 ether 00:11:22:33:44:60
192.168.1.7 ether 00:11:22:33:44:61

Linux arp命令的注意事项

使用arp命令时,需要注意以下几点:

  • arp命令只能显示和修改本地主机的ARP缓存,不能显示和修改远程主机的ARP缓存。如果想要查看或修改远程主机的ARP缓存,需要使用其他的工具,如arping、arpspoof等。
  • arp命令只能显示和修改IPv4地址的ARP缓存,不能显示和修改IPv6地址的ARP缓存。如果想要查看或修改IPv6地址的ARP缓存,需要使用其他的命令,如ip neigh、ndisc6等。
  • arp命令只能显示和修改以太网类型的ARP缓存,不能显示和修改其他类型的ARP缓存,如无线网、PPP等。如果想要查看或修改其他类型的ARP缓存,需要使用其他的命令,如iw、pppoe等。
  • arp命令可能会被一些防火墙或者安全软件拦截,导致无法正常显示或修改ARP缓存。如果遇到这种情况,需要检查和调整防火墙或者安全软件的设置,或者暂时关闭它们。
  • 如果在使用arp命令时,出现了bash: arp: command not found的错误提示,说明你的系统没有安装arp命令,或者arp命令的路径没有添加到环境变量中。你可以使用命令来安装arp命令,或者使用绝对路径来执行arp命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install net-tools # 安装arp命令
[linux@bashcommandnotfound.cn ~]$ /usr/sbin/arp -a # 使用绝对路径执行arp命令
0

评论区