如何查找Linux KVM来宾虚拟机的IP地址
如何从Linux主机本身查找Linux KVM guest虚拟机的IP地址?
我想使用ssh进入KVM guest虚拟机。
如何在CentOS Linux 7.x/8.x服务器上找到KVM虚拟机客户机的IP地址?
有多种方法可以从主机获取KVM guest虚拟机的IP地址。
如果使用的是virbr0(默认桥),请使用virsh命令。
如果您正在通过诸如br0之类的桥接网络使用专用的DHCPD,从而可以访问物理LAN,那么也可以使用arp命令的组合或检查DHCP服务器日志。
查找Linux KVM来宾虚拟机的IP地址的步骤
- 打开终端应用程序或使用ssh登录以托管服务器
- 获取网络列表:
virsh net-list
- 执行命令:
virsh net-dhcp-leases networkNameHere
让我们详细了解步骤。
方法1使用virsh在KVM中查找VM的IP地址
执行以下命令以列出网络:
# virsh net-list # virsh net-info default # virsh net-dhcp-leases default
这是我的centos-8-cloud VM的另一个会话:
$ virsh net-dhcp-leases default
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID ---------------------------------------------------------------------------------------------------------------- 2020-08-23 18:53:39 52:54:00:33:0c:ee ipv4 192.168.122.32/24 centos-8-cloud 01:52:54:00:33:0c:ee
您可以输入ssh命令以IP地址192.168.122.124登录到名为theitroad-openbsd的OpenBSD VM:
$ ssh [email protected]
对于CentOS 8 VM:
$ ssh 192.168.122.32 $ ssh [email protected]
方法2使用domifaddr获取Linux KVM guest虚拟机的IP地址
查找一个名为freebsd11.1的运行域的网络接口地址:
$ virsh list $ virsh domifaddr freebsd11.1
结合virsh和bash shell while循环,如下所示:
virsh list --name | while read n do [[ ! -z $n ]] && virsh domifaddr $n done
方法3:使用arp命令获取KVM来宾IP地址
使用virsh命令找出域的mac地址:
$ virsh list $ virsh dumpxml VM_NAME | grep "mac address" | awk -F\' '{ print }' $ arp -an | grep 52:54:00:ce:8a:c4
简而言之,使用以下virsh命令中的任何一个来获取IP地址
$ virsh list $ virsh domifaddr rhel7
向Libvirt NSS模块打个招呼
当涉及到管理来宾并其中执行命令时,登录来宾操作系统并执行该工作很方便。
在这种情况下,用户习惯于使用ssh。
理想情况下,
ssh user@ip-Address-Here
但是,取决于虚拟网络配置,可能并非总是可能。
例如,当使用libvirt NATed网络时,其dnsmasq(由libvirt产生)将IP地址分配给域。
但是默认情况下,在涉及主机名转换时,不咨询dnsmasq进程。
用户可通过配置其libvirt网络以分配静态IP地址并保持/etc/hosts文件同步来解决此问题。
但这给用户带来不必要的负担。
这就是NSS模块的来历。
使用yum命令/dnf命令/apt命令/apt-get命令安装它:
$ sudo yum install libvirt-nss ## RHEL/CentOS/Fedora ## $ sudo apt install libnss-libvirt ## Debian/Ubuntu ##
确保/etc/nsswitch.conf更新如下。
使用grep命令验证它:
$ grep -w 'hosts:' /etc/nsswitch.conf
files libvirt libvirt_guest dns mymachines
现在列出vm,并尝试使用ping命令或ssh命令通过ibvirt NSS模块解析这些VM:
$ virsh list $ ping vm-name-here $ ssh user@vm-name-here
使用CLI查找KVM虚拟机/来宾的IP地址