如何找到KVM虚拟机的IP地址
找到KVM Linux Guest虚拟机的IP地址并不是一项大问题。
如果我们对虚拟机进行了控制台访问,则可以使用"IP"命令轻松查找KVM Guest的IP地址。
但是,也可以识别KVM VM的IP地址,而无需访问其控制台。
在本教程中,我们将看到一些不同的方法可以在Linux中找到KVM虚拟机(Guest)的IP地址。
查找KVM虚拟机的IP地址
我们可以从Virsh命令行界面或者通过像Verv-Manager这样的KVM图形管理工具找到KVM Guest虚拟机的IP地址。
首先,我们将看到命令行方式。
A.使用"virsh"命令查找KVM虚拟机的IP地址
Virsh是用于创建和管理KVM Guest虚拟机的命令行界面。
它提供以下两个命令来查找虚拟机的IP地址:
- NET-DHCP租赁,
- domifaddr。
1.净DHCP租赁
Net-DHCP-Lease命令用来检索给定虚拟网络和/或者给定网络接口的DHCP租赁信息。
确保VM正在运行!
首先,列出KVM主机中的可用虚拟网络。
为此,运行:
$virsh net-list
示例输出:
Name State Autostart Persistent ------------------------------------------- default active yes yes
如我们所见,我的KVM主机有一个名为"默认"的虚拟网络。
这是默认情况下由KVM创建的私有虚拟网络桥。
它提供了自己的子网和DHCP来配置Guest网络,并使用NAT访问主机网络。
让我们查看"默认"虚拟网络的基本信息:
$virsh net-info default
示例输出:
Name: default UUID: ce25d978-e455-47a6-b545-51d01bcb9e6f Active: yes Persistent: yes Autostart: yes Bridge: virbr0
由于KVM有自己的DHCP,我们可以使用此命令查找已分配给每个KVM虚拟机的IP地址:
$virsh net-dhcp-leases default
示例输出:
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID -------------------------------------------------------------------------------------------------------------- 2017-07-25 18:51:53 52:54:00:42:b6:5a ipv4 192.168.122.119/24 centos8 01:52:54:00:42:b6:5a 2017-07-25 18:54:04 52:54:00:61:2a:88 ipv4 192.168.122.20/24 centos8uefi 01:52:54:00:61:2a:88
我们不必登录虚拟机。
从KVM主机的终端,我们可以轻松找到所有正在运行的KVM虚拟机的IP地址。
2. Domifaddr.
来自命令行中查找KVM虚拟机的IP地址的另一种方法是使用"DOMIFADDR"命令查询客户机操作系统的IP地址。
首先,让我们获取运行KVM Guest Machines的列表:
$virsh list
示例输出:
Id Name State ----------------------------- 1 centos8 running 2 centos8-uefi running
当我们在输出中看到时,有两位KVM客人正在运行!要查找名为"centos8"的KVM虚拟机的IP地址,请运行:
$virsh domifaddr centos8
示例输出:
Name MAC address Protocol Address ------------------------------------------------------------------------------ vnet0 52:54:00:42:b6:5a ipv4 192.168.122.119/24
B.使用"ARP"命令查找KVM虚拟机的IP地址
ARP代表地址解析协议,用于查找给定IPv4地址的网络邻居的媒体访问控制地址。
它操纵或者显示内核的IPv4网络邻居缓存。
它可以向表添加条目,删除一个或者显示当前内容。
如果无法使用ARP命令,请安装"NET-Tools"包。
在Debian,Ubuntu:
$sudo apt install net-tools
在CentOS,Rhel:
$sudo dnf install net-tools
要使用"ARP"命令在Linux中找到KVM虚拟机的IP地址,只需运行:
$arp -n
示例输出:
Address HWtype HWaddress Flags Mask Iface 192.168.122.20 ether 52:54:00:61:2a:88 C virbr0 192.168.225.34 ether 7c:d3:0a:0c:6b:9a C wlp9s0 192.168.225.1 ether 12:b0:25:2b:ec:19 C wlp9s0 192.168.122.119 ether 52:54:00:42:b6:5a C virbr0
我们是否在上面的命令中注意到"virbr0"条目?
它是我们的KVM虚拟网络接口,因此KVM VM的IP地址为192.168.122.119和192.168.122.20。
如果只有一个或者多个VM运行,则可以。
但如果你有很多,你如何知道哪个MAC地址对应于你想要的地址?
这是"domiflist"和"dumpxml"命令派上派上的位置。
查找运行虚拟机列表:
$virsh list
获取任何运行VM的MAC地址,例如CentOS8,使用命令:
$virsh domiflist centos8
示例输出:
Interface Type Source Model MAC ------------------------------------------------------------ vnet0 network default virtio 52:54:00:42:b6:5a
最后找到与上述MAC地址相关联的IP地址:
$arp -n | grep 52:54:00:42:b6:5a
或者,
$arp -an | grep 52:54:00:42:b6:5a
示例输出:
? (192.168.122.119) at 52:54:00:42:b6:5a [ether] on virbr0
C.使用Virt-Manager GUI查找KVM虚拟机的IP地址
Virt-Manager是virsh命令行实用程序的图形替代方法。
如果我们已经在KVM主机中安装了它,请查找任何运行KVM虚拟机的IP地址令人难以置信的容易!
打开Virt-Manager应用程序,然后双击任何运行的虚拟机。
接下来单击菜单列中的"显示虚拟硬详细信息"图标。
最后从列表中单击"NIC:XX:XX:XX"设备,我们将在右侧看到KVM VM的IP地址。