我正在尝试使用 QEMU 中的虚拟机。我遇到了一个问题,网络在任何虚拟机中都无法工作。完全没有。决不。
首先我用 Alpine Linux 启动机器:
~/Virtual/alpine $ qemu-system-x86_64 -k en-gb -m 512M -smp cpus=2 -cdrom alpine.iso -drive if=virtio,file=rootfs.img -boot c
并注意到网络无法从 iso 运行。dhclient eth0
手动堵塞 DNS 也/etc/resolv.conf
无济于事。
我设置了参数-net user
,但出现错误:
qemu-system-x86_64: -net user: network backend 'user' is not compiled into this binary
为了以防万一,我决定重建 QEMU(它最初是从源代码组装的,因为这是必要的)。以下是configure
选项:
../configure \
--enable-lto \
--enable-modules \
--enable-module-upgrades \
--enable-strip \
--enable-tcg-interpreter \
--prefix=/usr \
--enable-alsa \
--enable-attr \
--enable-auth-pam \
--enable-avx2 \
--enable-avx512bw \
--enable-avx512f \
--enable-bochs \
--enable-bpf \
--enable-brlapi \
--enable-bzip2 \
--enable-cap-ng \
--enable-capstone \
--enable-cloop \
--enable-colo-proxy \
--enable-crypto-afalg \
--enable-curl \
--enable-curses \
--enable-dbus-display \
--enable-dmg \
--enable-docs \
--enable-fuse \
--enable-fuse-lseek \
--enable-gcrypt \
--enable-gettext \
--enable-gio \
--enable-glusterfs \
--enable-gnutls \
--enable-gtk \
--enable-gtk-clipboard \
--enable-guest-agent \
--enable-hv-balloon \
--enable-iconv \
--enable-jack \
--enable-keyring \
--enable-kvm \
--enable-l2tpv3 \
--enable-libdaxctl \
--enable-libdw \
--enable-libiscsi \
--enable-libkeyutils \
--enable-libnfs \
--enable-libssh \
--enable-libudev \
--enable-libusb \
--enable-libvduse \
--enable-linux-aio \
--enable-linux-io-uring \
--enable-live-block-migration \
--enable-lzo \
--enable-malloc-trim \
--enable-membarrier \
--enable-multiprocess \
--enable-numa \
--enable-opengl \
--enable-oss \
--enable-pa \
--enable-parallels \
--enable-pipewire \
--enable-pixman \
--enable-plugins \
--enable-png \
--enable-pvrdma \
--enable-qcow1 \
--enable-qed \
--enable-rdma \
--enable-replication \
--enable-sdl \
--enable-sdl-image \
--enable-seccomp \
--enable-selinux \
--enable-slirp \
--enable-slirp-smbd \
--enable-smartcard \
--enable-snappy \
--enable-sndio \
--enable-sparse \
--enable-spice \
--enable-spice-protocol \
--enable-stack-protector \
--enable-tcg \
--enable-tools \
--enable-tpm \
--enable-usb-redir \
--enable-vde \
--enable-vdi \
--enable-vduse-blk-export \
--enable-vhdx \
--enable-vhost-crypto \
--enable-vhost-kernel \
--enable-vhost-net \
--enable-vhost-user \
--enable-vhost-user-blk-server \
--enable-vhost-vdpa \
--enable-virglrenderer \
--enable-virtfs \
--enable-virtfs-proxy-helper \
--enable-vmdk \
--enable-vnc \
--enable-vnc-jpeg \
--enable-vnc-sasl \
--enable-vpc \
--enable-vte \
--enable-vvfat \
--enable-zstd \
--enable-system \
--enable-user \
--enable-linux-user \
--enable-pie \
--enable-xkbcommon \
--enable-rbd \
--extra-cflags='-march=native' \
--extra-cxxflags='-march=native' \
--extra-objcflags='-march=native'
没有帮助。我从源代码下载并构建 libslirp,然后用它重建 QEMU,但结果是相同的 - 网络无法工作。即使该选项也不起作用-net nic
:
~/Virtual/Win10 $ qemu-system-x86_64 -accel kvm -k en-gb -smp cores=1 -m 1400M -drive if=virtio,file=disk_c.img -cpu qemu64 -M pc,vmport=off,usb=false,pic=off -drive if=virtio,file=disk_d.img -net nic,model=rtl8139
所以我该怎么做?到底是什么问题,slirp、qemu 还是其他什么问题?如何解决问题,或者至少在哪里找到问题的根源。也许缺少某些东西(反之亦然,有东西干扰)......
在主机上,网络工作没有问题。