我按照以下方法创建了一个 Ubuntu 20.04 虚拟机本指南。我能够使用我在网络配置文件中写入的 IP 地址(即 192.168.122.101)通过 ssh 进入虚拟机,但是,运行virsh domifaddr <domain>
和时virsh net-dhcp-leases default
,都没有显示任何内容,没有 IP 地址。
这仅发生在 Ubuntu 20.04 云映像中,对于早期的 Ubuntu 版本和所有 CentOS 云映像,我可以使用上述命令查看分配的 IP 地址。
对此有什么想法吗?
答案1
您选择使用手动配置IP 地址,而不是从 DHCP 获取,这是云图像的默认设置。如果您将其配置为使用 DHCP,它将继续工作。
默认情况下,virsh domifaddr
查询 DHCP 服务器租约表以查找客户机的 IP 地址。如果客户机中手动配置了地址,则此处找不到任何内容,因此无法显示任何内容。
您可以要求它使用 QEMU 客户机代理查询客户机。此代理应默认安装并运行在针对 KVM 虚拟机管理程序的云映像上,例如focal-server-cloudimg-amd64-disk-kvm.img
。
例如:
virsh domifaddr guestname --source agent
这将返回网络配置的视图在客人里面,这将与外部视图不同,例如,将显示客户网络接口名称而不是主机虚拟接口名称。
比较:
# virsh domifaddr example-staging
Name MAC address Protocol Address
-------------------------------------------------------------------------------
vnet1 52:54:00:6b:3b:e4 ipv4 192.168.122.248/24
和:
# virsh domifaddr example-staging --source agent
Name MAC address Protocol Address
-------------------------------------------------------------------------------
lo 00:00:00:00:00:00 ipv4 127.0.0.1/8
- - ipv6 ::1/128
enp1s0 52:54:00:6b:3b:e4 ipv4 192.168.122.248/24
- - ipv6 fe80::72aa:277e:2feb:5e60/64