qemu网络NAT配置

Build ARM64 qemu environment - 知乎

在以上基础上进行如下配置

mini_qemu_run.sh
#!/bin/bash
set -x

qemu-system-aarch64 -machine virt -cpu cortex-a57 \
-m 2048M \
-kernel ./linux-5.10.100/arch/arm64/boot/Image \
-initrd ./rootfs.cpio.gz \
-append "console=ttyAMA0 root=/dev/ram rdinit=/init" \
-netdev tap,id=netdev0,ifname=tap0,script=no,downscript=no \
-device virtio-net-pci,netdev=netdev0,mac=00:01:02:03:04:05 \
-nographic 

对于网络配置

init_netdev.sh
#!/bin/bash

# exec the cmd in guest os
# ip addr add 192.168.0.15/24  dev eth0

brctl addbr br0
ip addr add 192.168.0.10/24  dev br0

tunctl -t tap0 -u `whoami`
brctl addif br0 tap0

ifconfig br0 up
ifconfig tap0 up
 


 

在Windows系统中配置QEMU虚拟机的网络设置,可以通过多种方式实现,具体取决于使用场景和需求。以下是几种常见的QEMU网络配置方法及其操作指南。 ### 用户模式(User Mode) 用户模式是最简单的网络配置方式,QEMU会自动为虚拟机分配IP地址,并通过NAT网络地址转换)与主机通信。该模式无需管理员权限即可运行。 ```bash qemu-system-x86_64 -net user -net nic,model=virtio ``` 此命令将启用一个基于virtio模型的网卡设备,并且QEMU会自动处理虚拟机内部的网络连接。 ### 桥接模式(Bridged Networking) 桥接模式允许虚拟机直接接入物理网络,获取与主机同一子网的独立IP地址。这种方式需要TAP设备的支持,并且通常要求管理员权限。以下是一个基本示例: ```bash qemu-system-x86_64 -net nic,model=virtio -net tap,ifname=tap0,script=no,downscript=no ``` 其中`tap0`是预先创建好的TAP接口名称。此外,还需要手动配置桥接环境或使用脚本文件来设置正确的路由规则。 ### 端口转发(Port Forwarding) 如果希望从外部访问虚拟机中的服务(如HTTP服务器),可以利用端口转发功能。这同样基于用户模式,但额外指定了特定端口映射: ```bash qemu-system-x86_64 -net user,hostfwd=tcp::8080-:80 -net nic,model=virtio ``` 上述命令使得宿主机上的8080端口被转发至虚拟机的80端口,从而允许外部客户端通过宿主机IP加指定端口号访问虚拟机提供的Web服务。 ### 自定义脚本配置 对于更复杂的网络需求,比如VLAN划分或多网卡支持,可以通过编写自定义shell脚本来实现更加灵活的网络初始化逻辑。例如: ```bash qemu-system-x86_64 -net nic,vlan=0,macaddr=52:54:00:12:34:56 -net vde:socket=/tmp/vde.ctl,group=vde2-net,mode=0777 ``` 以上方法均适用于不同层次的需求,从基础到高级应用均有覆盖[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值