Я хочу использовать сетевой бэкэнд TAP вместо SLIRP по умолчанию, который предоставляет Qemu. Это командный файл, который я использую для создания виртуальной машины (вдохновленный этим):

@echo off
set "QEMUIMG=D:\user\VMs\Qemu\qemu\qemu-img.exe"
set "IMAGE=disk.img"
set "ISOFILE=D:\user\VMs\isos\isofile.iso"
set "QEMUBIN=D:\user\VMs\Qemu\qemu\qemu-system-x86_64.exe"

rem ==================================
rem Safety net
rem ==================================
if not exist %IMAGE% (
    rem CREATE a virtual hard disk 
    %QEMUIMG% create -f qcow2 %IMAGE% 32G
) else (
    echo file %IMAGE% already exist. Delete or move and try again.
    goto:eof
)

rem ==================================
rem Run the virtual machine
rem ==================================>
start "QEMU" %QEMUBIN% -k us -usb -device usb-tablet -drive ^
file=%IMAGE%,index=0,media=disk,format=qcow2 -cdrom %ISOFILE% -m 2048M ^
-boot order=d -smp cpus=2 -rtc base=localtime,clock=host -parallel none ^
-serial none -name vm -no-acpi -no-hpet -no-reboot  -show-cursor ^
-netdev tap,id=tap0,ifname=mytap,script=no,downscript=no -device netdev=tap0 

Затем:

  • Я загружаю OpenVPN и устанавливаю только виртуальный Ethernet-адаптер TAP-Win32.
  • Теперь в Network Connections появляется новый интерфейс: TAP-Windows Adapter V9 (который я переименую в "mytap").

Следующим шагом является создание моста между адаптером TAP и интерфейсом, который я использую для подключения к Интернету. Но так как я использую Wi-Fi, он не работает, а мост является менее безопасным, чем NAT.

Тем не менее, инструкции, которые я нашел для настройки NAT , специфичны для OpenVPN или Hyper-V, и я не знаю, как применить их в этом случае.

Любые советы о том, как действовать?

1 ответ1

1

После установки программного обеспечения TAP и создания экземпляра адаптера TAP перейдите в раздел «Сетевые подключения» и найдите там его имя. Вы можете переименовать его оттуда, если хотите.

Например, мой экземпляр TAP-адаптера называется Ethernet:

изображение значка адаптера TAP, называемого Ethernet из сетевых подключений

Используйте имя адаптера TAP в параметре ifname= -netdev tap .

Установите id= netdev на то, что вам нравится; типичные примеры используют mynet0 . Это имя виртуальной сети, внутренней по отношению к экземпляру Qemu, которая соединяет некоторую комбинацию эмулируемых сетевых интерфейсов и соединений адаптера TAP.

Затем вы ссылаетесь на этот netdev чтобы подключить его к виртуальной сетевой карте. Механика выполнения этого зависит от того, что имитируется.

Для чего-то вроде ПК, где вы определяете NIC как отдельную опцию -device , вы помещаете netdev= в опцию device :

-netdev tap,id=mynet0,ifname=Ethernet -device e1000,netdev=mynet0

Для системы, имеющей сетевое устройство по умолчанию в том , что вы не можете указать в опции -device например , в lance.0 в SS-20 добавив дополнительный -net nic раздел , как это кажется , что требуется:

-netdev tap,id=mynet0,ifname=Ethernet -net nic,model=lance,netdev=mynet0

При запуске Qemu вы должны заметить, что адаптер TAP теряет индикацию "сетевой кабель отключен".

Теперь вы можете настроить адаптер TAP на стороне Windows так, как вам нравится, предоставив ему локальные настройки для использования только на хосте или подключив его к другому сетевому адаптеру, если это необходимо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .