我正在尝试获取具有用户模式网络设置的虚拟机,但网络似乎不起作用,甚至无法 ping localhost 或 wget localhost。当我运行 ifconfig 时,存在环回“lo”和以太网“eth0”设备,但两者都没有 IP 地址。
对于上下文,我遵循本指南:https://mergeboard.com/blog/2-qemu-microvm-docker/
这是我用来启动虚拟机的命令:
qemu-system-x86_64 \
-M microvm,x-option-roms=off,isa-serial=off,rtc=off \
-no-acpi \
-enable-kvm \
-cpu host \
-nodefaults \
-no-user-config \
-nographic \
-no-reboot \
-device virtio-serial-device \
-chardev stdio,id=virtiocon0 \
-device virtconsole,chardev=virtiocon0 \
-drive id=root,file=alpine.qcow2,format=qcow2,if=none \
-device virtio-blk-device,drive=root \
-kernel kernel/bzImage \
-append "console=hvc0 root=/dev/vda rw acpi=off reboot=t panic=-1" -m 512 \
-smp 2 \
-device virtio-rng-device \
-netdev user,id=mynet0 \
-device virtio-net-device,netdev=mynet0
这是 ifconfig 的输出
/ # ifconfig -a
eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
LOOPBACK MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
到目前为止,我已经尝试过运行 Alpine 和 Ubuntu 作为来宾操作系统。我尝试在 VirtualBox VM 中从头开始运行相同的设置,看看我的问题是否来自于主机操作系统或 Qemu 安装配置错误。两次尝试都给出了完全相同的结果,即具有两个没有 IP 地址的网卡的虚拟机。并且机器无法访问本地主机或互联网。