Как настроить NAT для Qemu с бэкэндом TAP? (Windows 10)

1795
Clara Sánchez

Я хочу использовать сетевой бэкэнд 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, и я не знаю, как применить их в этом случае.

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

0
Ах ... это просто проблема подделки MAC в беспроводной сети, так как вы не используете WDS или что-то подобное? Вы можете запустить общий доступ к подключению к Интернету (т. Е. NAT) на устройстве WiFi, а не подключаться к нему, хотя это может победить все, что вы пытаетесь сделать с TAP. rakslice 6 лет назад 0

1 ответ на вопрос

0
rakslice

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

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

picture of the TAP Adapter icon called Ethernet from the Network Connections

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

Установите на id=то, netdevчто вам нравится; Типичные примеры использования mynet0.

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

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

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

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

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

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

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