如何在 Linux 上添加或删除静态 ARP 条目如何在 Linux 上添加或删除静态 ARP 条目如何在 Linux 上添加或删除静态 ARP 条目如何在 Linux 上添加或删除静态 ARP 条目
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上添加或删除静态 ARP 条目

ARP(“地址解析协议”的缩写)是一种网络协议,用于将 IP 网络地址映射到相应的硬件 MAC 地址。当主机X想要与主机Y通信时,X首先在其本地网络上广播ARP请求以获取Y的MAC地址。一旦X收到包含Y的MAC地址的ARP回复,X使用该信息构造发往Y的以太网帧。

将得到的IP/MAC地址映射信息缓存在本地ARP表中,从而可以省略后续的ARP查询过程。

无论出于何种原因,当主机 X 未收到其希望与其通信的目标主机 Y 的 ARP 回复时,就会出现问题。在其他情况下,ARP 回复会传入,但包含与错误主机 Z 关联的 MAC 地址。这种损坏的 ARP 回复将导致流量劫持,本应发送到 Y 的流量最终到达主机 Z。

在处理此类由 ARP 引起的异常情况时,能够在本地缓存的 ARP 表上手动添加静态 ARP 条目非常有用。当本地 ARP 表中找到目的主机 Y 的 MAC 地址时,无需发送 ARP 请求。

将静态 ARP 条目添加到本地 ARP 表


$ sudo arp -s 10.0.0.2 00:0c:29:c0:94:bf

上述命令告诉本地 ARP 表,IP 地址为 10.0.0.2 的主机具有 MAC 地址00:0c:29:c0:94:bf。配置静态 ARP 条目后,您可以验证这一点。


$ arp -a -n

? (192.168.10.47) at e0:db:55:ce:13:f1 [ether] on eth0
? (192.168.10.1) at 00:e0:b1:cb:07:30 [ether] on eth0
? (10.0.0.2) at 00:0c:29:c0:94:bf [ether] PERM on eth1

如上所示,静态配置的 ARP 条目正确显示,在 ARP 表中标记为 PERM。

从本地 ARP 表中删除静态 ARP 条目


$ sudo arp -d 10.0.0.2

$ arp -a -n
? (135.112.29.47) at e0:db:55:ce:13:f1 [ether] on eth0
? (135.112.29.1) at 00:e0:b1:cb:07:30 [ether] on eth0
? (10.0.0.2) at <incomplete> on eth1

在 Linux 上永久添加静态 ARP 条目

请注意,像上面这样在运行时由 arp 命令添加的任何 ARP 条目在重新启动后不会持续保留。为了永久添加静态 ARP 条目,您可以做的是在网络接口启动时自动从外部文件加载 ARP 条目。为此,首先创建一个包含静态 ARP 条目的文件。


$ sudo vi /etc/ethers

00:0c:29:c0:94:bf 10.0.0.2
00:0c:59:44:f0:a0 10.0.0.5
. . . .

arp 命令允许您使用 -f 选项加载任何外部文件。


$ sudo arp -f /etc/ethers

现在,您需要将上述命令设置为在给定网络接口(例如 eth0)启动时自动运行。有特定于发行版的方法来运行网络接口的启动命令。以下是特定于发行版的示例。

这里我假设您没有在 Linux 系统上使用网络管理器。因此,如果您正在使用网络管理器,则必须先将其禁用。

在 Ubuntu、Debian 或 Mint 上,在 /etc/network/interfaces 中添加以下条目:


iface wlan0 inet dhcp
. . .
post-up arp -f /etc/ethers

在 CentOS、RHEL 或 Fedora 上,创建以下可执行脚本,如本教程中所述:


$ sudo vi /sbin/ifup-local

#!/bin/sh
if [[ "$1" == "eth0" ]]
then
    arp -f /etc/ethers
else
    #DO_NOTHING
fi

使脚本可执行:


$ sudo chmod +x /sbin/ifup-local
©2015-2025 艾丽卡 support@alaica.com