Windows10下qemu使用TAP网络与主机互通方法

QEMU是一个非常好的仿真软件,与VirtualBox/Vmware/Bochs相比,配置灵活,可以用于多种场景下的仿真测试等,美中不足的是网络配置比较复杂,并且不同版本网络参数可能都不同,在往上查阅诸多信息后,借鉴前辈经验,简单总结如下:

1. Qemu Manager为一GUI方式配置各种参数的软件,但其中包含的QEMU版本太老,且只支持32位windows, 当前已经失去参考意义

2. QEMU官网中给出了一个WINDOWS下QEMU版本的下载地址

https://qemu.weilnetz.de/w64/2024/

QEMU for Windows – Installers (64 bit)

笔者使用的版本是:qemu-w64-setup-20240828.exe 

3. 下载完成后,直接一路NEXT安装,注意默认是安装所有平台 占用空间较大,可以只选择386平台如下
 qemu-system-i386.exe
 qemu-system-i386w.exe
 qemu-system-x86_64.exe
 qemu-system-x86_64w.exe

4. 安装TAP DRIVER

下载TAP-DRIVER-dist.win7

下载tap-window6(

### 安装和配置 QEMU 虚拟机 #### 下载安装 QEMU 对于希望在 Windows 上构建基于 ARM 架构的虚拟环境而言,首先应当获取适用于 WindowsQEMU 版本。建议访问官方资源页面下载适合的操作系统版本,并按照指导说明完成安装过程[^1]。 ```bash # 假设已经将QEMU安装到了指定路径下 cd "D:\vm\arm64" ``` #### 创建虚拟磁盘映像 创建一个新的虚拟硬盘用于存储操作系统及其他数据是非常重要的一步。这里可以采用 `qemu-img` 工具来实现这一目标。例如,要建立一个大小为 180GB 的 QCOW2 格式的磁盘文件: ```powershell "D:\vm\arm64\qemu-img.exe" create -f qcow2 D:\softSet\vmOS\qemu\kylin_arm64.img 180G ``` 此操作会生成名为 kylin_arm64.img 的新磁盘文件,它将在后续作为虚拟机的主要存储介质使用[^4]。 #### 启动无图形界面的 QEMU 实例 当计划仅通过命令行接口管理 Linux 发行版时,在启动参数中加入 `-nographic` 或者 `-vnc` 参数可以让 QEMU 不显示 GUI 界面而是提供远程桌面支持或其他形式的文字终端接入方式[^2]。 ```powershell "D:\vm\arm64\qemu-system-aarch64.exe" ^ -m 2048 \ -cpu cortex-a72 \ -machine virt \ -drive file=D:\softSet\vmOS\qemu\kylin_arm64.img,if=none,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -netdev user,id=mynet0 \ -device virtio-net-device,netdev=mynet0 \ -bios D:\path_to_bios_file\edk2-aarch64-code.fd \ -append "root=/dev/vda console=ttyS0" \ -serial stdio \ -display none \ -vnc :0,password ``` 上述脚本设置了一个具有 2 GB RAM 和特定 CPU 类型的基础架构模拟器;同时指定了 BIOS 文件位置以及根文件系统的挂载点等必要信息。另外还启用了 VNC 协议以便于外部设备连接至该实例进行管理和监控工作。 #### 配置网络连接 为了让 QEMU 中运行的服务能够被外界访问或是反过来主动发起请求,则需合理规划其内部网卡属性及其关联的真实物理适配器之间的关系。一种常见做法就是利用 TAP 设备配合 NAT 或 Bridge 技术建立起两者间的桥梁结构[^3]。 ```powershell # 使用管理员权限打开 PowerShell 并执行如下指令以创建 tap 接口 New-VMSwitch -Name "InternalSwitch" -NetAdapterName "enp0s5" -AllowManagementOS $true ``` 接着修改之前的启动命令中的网络部分,使其指向新建好的交换机名称而非默认值: ```diff - "-netdev user,id=mynet0 \ " + "-netdev bridge,id=mynet0,br=InternalSwitch \ " ``` 这样就完成了基本的网络互通设定,使得宿主机和其他联网装置均能正常通信交流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值