当前位置: 首页 > article >正文

QEMU 用户网络与桥接网络设置总结

1. 用户网络(User-mode Networking)

特点

  • QEMU 虚拟机通过 NAT 访问外部网络。
  • 不需要额外的网络配置,简单易用。
  • 主机和虚拟机之间可以通过特定的 IP 地址(通常是 10.0.2.2)进行通信。

设置示例

qemu-system-x86_64 -hda your_image.img -net nic -net user

与主机通信

  • 虚拟机的 IP 通常为 10.0.2.15
  • 主机通过IP 10.0.2.2 与虚拟机通信。

在虚拟机上,可以主动访问10.0.2.2与主机通信:

ssh 10.0.2.2

scp file 10.0.2.2:/root

在主机上,不能直接访问10.0.2.15与虚拟机通信:

  • 用户网络模式通过 NAT 将虚拟机的 IP 地址映射到主机的 IP 地址。主机的网络栈并不知道如何直接与虚拟机的私有 IP 地址交互,因此无法 ping 通。
  • 解决方法:使用端口转发,通过设置端口转发将虚拟机的特定端口映射到主机的端口,以实现通信。

 端口转发示例(将虚拟机的 SSH 端口转发到主机的 2222 端口):

qemu-system-x86_64 -hda your_image.img -net nic -net user,hostfwd=tcp::2222-:22

在主机上,可以使用以下命令访问虚拟机:

ssh -p 2222 user@localhost

scp -P 2222 file user@localhost:/home/user
2. 桥接网络(Bridged Networking)

特点

  • 虚拟机直接连接到物理网络,获得与主机相同网段的 IP 地址。
  • 适合需要与局域网中的其他设备直接通信的场景。

设置步骤

  • 1 创建桥接接口br0(Linux):
sudo ip link add name br0 type bridge
sudo ip addr add 192.168.1.1/24 dev br0  # 主机的桥接 IP
sudo ip link set br0 up
  • 2 将物理网络接口添加到br0(假设物理接口为 eth0):
sudo ip link set eth0 master br0
  • 3 创建TAP 接口添加到br0

TAP接口是一种虚拟网络设备,虚拟机QEMU通过这个接口发送和接收网络数据包。

第一条命令创建一个名为 tap0 的 TAP 接口,并将其模式设置为 tap,允许当前用户访问。

第二条命令将 tap0 接口激活,使其准备好传输数据。

第三条命令将 TAP 接口连接到桥接接口。

sudo ip tuntap add dev tap0 mode tap user $(whoami)

sudo ip link set tap0 up

sudo ip link set tap0 master br0
  • 4 启动 QEMU 并通过tap0连接到br0

QEMU通过tap0接口连接到网桥br0,br0完成tap0和物理网口eth0直接的网络包转发。

qemu-system-x86_64 -hda your_image.img -netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=mynet0


http://www.kler.cn/news/323888.html

相关文章:

  • ubuntu22.04磁盘挂载(多磁盘和单磁盘挂载)
  • 讯飞星火编排创建智能体学习(一)最简单的智能体构建
  • 什么是触发器(Trigger)?触发器何时会被触发?
  • MYSQL(学习笔记)
  • K8s flink-operator 例子
  • [大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
  • k8s中,服务的自动注册、自动感知、负载均衡,三个功能的含义及测试验证
  • 前端面试题(十)
  • 树脂法提纯牛胆汁
  • 三相自激感应发电机瞬态过程仿真分析
  • 工具探讨?
  • 【计算机网络 - 基础问题】每日 3 题(二十八)
  • FortiOS SSL VPN 用户访问权限配置
  • HBase 性能优化的高频面试题及答案
  • 网络资源模板--Android Studio 宿舍管理系统
  • 线上报名小程序怎么做
  • Spring--boot自动配置原理案例--阿里云--starter
  • C高级(Day21)
  • 【吊打面试官系列-MySQL面试题】实践中如何优化 MySQL?
  • 基于单片机的指纹打卡系统
  • 视频分割怎么弄?国内外Top 7视频剪辑软件大盘点,新媒体必看!
  • 一键自动化配置OpenHarmony编译环境
  • 花都狮岭寄宿自闭症学校:开启孩子的生命之门
  • 给Ubuntu虚拟机设置静态IP地址(固定IP)
  • 基于ASRPRO的语音应答
  • 基于php的在线租房管理系统
  • 如何使用Apache Kafka处理实时数据
  • 探究Spring的单例设计模式--单例Bean
  • 主从蓝牙配对_笔记(HC-05)
  • 阿里云图形化管理工具(oss-browser、oss浏览器、AcceassKeyId、AccessKeySecret)