如何使用 TAP 后端为 Qemu 设置 NAT?(Windows 10)

如何使用 TAP 后端为 Qemu 设置 NAT?(Windows 10)

我想使用 TAP 网络后端,而不是 Qemu 提供的默认 SLIRP。这是我用来创建虚拟机的批处理文件(受到此启发):

@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 并只安装了TAP-Win32 虚拟以太网适配器
  • 现在在网络连接中出现了一个新界面:TAP-Windows 适配器 V9(我将其重命名为“mytap”)。

下一步是建立桥梁TAP 适配器与我用于连接互联网的接口之间。但由于我使用 Wi-Fi,它不起作用,并且桥接的安全性不如 NAT。

然而,我发现设置 NAT是 OpenVPN 或 Hyper-V 所特有的,我不知道如何将它们应用于这种情况。

关于如何进行有什么提示吗?

答案1

安装 TAP 软件并创建 TAP 适配器实例后,转到“网络连接”窗口(在当前 Windows 10 中:设置应用程序 -> 网络和 Internet,单击“更改适配器选项”)并在那里找到 TAP 适配器的名称。如果需要,您可以从那里重命名它。

例如我的TAP适配器实例称为Ethernet

网络连接中名为以太网的 TAP 适配器图标的图片

ifname=在的参数中使用 TAP 适配器的名称-netdev tap

id=将的设置netdev为您喜欢的任何内容;典型示例使用mynet0。这是 Qemu 实例内部的虚拟网络的名称,用于连接模拟网络接口和 TAP 适配器连接的某种组合。

然后您可以参考此内容netdev将其连接到虚拟 NIC(网络接口卡)。执行此操作的机制取决于您在 Qemu 中模拟的机器类型。

对于像 PC 这样的设备,您需要将 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 适配器图标失去“网线已拔出”指示。

现在,您可以继续按照自己的喜好在 Windows 端配置 TAP 适配器,使用“网络连接”窗口中的图标,就像将物理 NIC 连接到单独的物理网络一样,例如:

  • 在其属性的“共享”选项卡中启用“允许其他网络用户通过此计算机的 Internet 连接进行连接”,以将其配置为 Windows 内置“Internet 连接共享”NAT 的客户端网络,
  • 在其属性中为其提供本地 TCP/IP 设置,以将其用作仅主机网络,或者
  • 如果您想要桥接网络,可以通过上下文菜单将其桥接到另一个网络适配器。

相关内容