
Когда я пробую TAP Interface в qemu, виртуальная машина зависает, не знаю почему. Но с -netdev user
ним не зависает, но вообще не может подключиться к виртуальной машине.
Я протестировал с помощью ESXi
и Centos 7
обе виртуальные машины зависают при использовании Tap
интерфейса. Centos 7
Виртуальная машина запускается нормально, но при перезапуске eth0
зависает и не восстанавливается. ESXi
зависает во время загрузки при использовании Tap
interace.
Я использовал OpenVPN для создания Tap-интерфейса на Windows 10, переименовал интерфейс в Ethernet7 и использовал следующую команду при запуске Qemu
виртуальной машины.
-netdev tap,ifname=Ethernet7,script=no,downscript=no,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=DE:AD:BE:EF:16:B6
Я скачал последнюю версию Qemu для Windows с qemu.org
решение1
Обновление: интерфейс TAP не работал из-за того, что интерфейс Tap в Windows 10 использовал старый драйвер 2014 года. Я создал новый интерфейс (используя hdwwiz.exe
) и у меня была возможность выбрать драйвер 2019 года вместо старого драйвера. Интерфейс TAP работает нормально и не замораживает виртуальную машину.
User mode
Сетевое соединение также работает нормально, если вам не нужен интерфейс TAP.
qemu-system-x86_64 -boot d -hda centos.img -m 2048 -smp cpus=2,cores=2 -netdev user,id=n1,hostfwd=tcp::2222-:22 -device e1000,netdev=n1
В Centos
мне пришлось запустить команду, dhclient eth0
так как она не назначает автоматически IP-адрес dhcp. После запуска команды виртуальная машина получает IP-адрес, 10.0.2.15
и я могу подключиться к ней по SSH, используя ssh -p 2222 root@localhost
.
Для ESXi мне пришлось включить SSHD в настройках ESXi и использовать localhost для подключения. ICMP не работает для обоих в User mode
сети.
qemu-system-x86_64 -boot d -hda esxi.img -m 4096 -cpu Westmere -machine q35 -smp cpus=2,cores=2 -accel tcg -netdev user,id=n1,hostfwd=tcp::2223-:22,hostfwd=tcp::9443-:443,hostfwd=tcp::8085-:80 -device e1000,netdev=n1