我刚刚重新启动了 KVM 主机中的网络服务,并且运行虚拟机来宾的网络无法访问。
我通过 Bridge 启用了虚拟机访客的网络。只有在访客重新启动后,我才能访问虚拟机 IP。
为什么它会导致网络重新启动问题以及我如何在不重新启动的情况下访问来宾虚拟机 IP。
答案1
我曾经遇到过这个问题。
现在,每当我使用安装新虚拟机时virt-install
,我总是确保包含以下选项--nographics
,-x console=ttyS0
。该-x console=ttyS0
选项通过 ttyS0 端口创建虚拟控制台连接。这允许我从主机登录到虚拟机virsh console <VMname>
,然后我可以重置虚拟机上的网络设置,而无需完全重新启动它。在虚拟机本身内,这会将以下设置添加到 /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,9600n8"
GRUB_CMDLINE_LINUX=""
在我的一台虚拟机上,我必须在安装后手动添加这些行并使用重建 grubgrub-mkconfig
才能使设置在重新启动后仍然有效。
答案2
下面的行是允许主机在 KVM 环境中与访客通信所必需的
假设您的主机界面如下所示
interface: eth0
ip: 192.168.0.10/24
gateway: 192.168.0.1
编辑/etc/rc.local并添加以下命令
ip link add link eth0 address 51:51:51:A8:28:A1 macvlan0 type macvlan mode bridge
ip address add 192.168.0.10/24 dev macvlan0
ip link set dev macvlan0 up
ip route flush dev eth0
ip route add default via 192.168.0.1 dev macvlan0 proto static