Linux 通过 mac地址 查询 ip 和 清除arp 缓存

问题重述:

今天,突然找不到vm 的ip 了,但是可以从网卡状态上看到其 mac 地址,并且确定主机是启动状态,网络状态良好(后来发现因为子网掩码的问题,导致虚拟机和网关之间不通信,从而导致其他网络的主机不能访问,这个是另一个问题了。)

所以我们需要通过vm 的mac 地址来获取到vm 具体的 ip了。

(1)linux中获取mac 地址可以通过 arp -a 命令,通过 grep 输出对应的mac 地址

(2)通过输出 /proc/net/arp 文件,通过 grep 筛选来获取对应的 ip 地址。

(3)使用 ip neigh show, 配合 grep 来筛选对应的 ip 地址。

前提:你所查的主要要和您属于同以太网下。

如果有其他方法,请您在博文下面进行留言交流:

[root@linuxmi ~]# cat /proc/net/arp | grep 00:16:3e:10:7c:60
10.66.10.155    0x1        0x2        00:16:3e:10:7c:60    *        ovirtmgmt
10.66.10.153    0x1        0x0        00:16:3e:10:7c:60    *        ovirtmgmt

[root@linuxmi ~]# ip neigh show | grep 00:16:3e:10:7c:60
10.66.10.155 dev ovirtmgmt lladdr 00:16:3e:10:7c:60 REACHABLE

这里面 我进行查到了两个对应的 ip 地址,应该是arp 缓存的问题。实际我们 测试机器,之前 曾改变过ip 地址,从 153-> 155 所以导致了 ip 地址的变化。

但是使用 ip neigh show 查出的 ip 地址较为准确。

清除arp 缓存命令:

➜  Desktop sudo ip neigh flush dev wlp3s0

上面命令是按照网卡设备来进行清除的网络地址。还有很多其他的选项,具体内容可以具体来选择。

相关推荐