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