QEMU网络配置简介
本文简单介绍下qemu虚拟机网络的几种配置方式。
通过QEMU的支持,常见的可以实现以下4种网络形式:
- 基于网桥(bridge)的虚拟网络。
- 基于NAT(Network Addresss Translation)的虚拟网络。
- QEMU内置的用户模式网络(user mode networking)。
- 直接分配网络设备从而直接接入物理网络(包括VT-d和SR-IOV)。
使用直接的网桥模式
在QEMU/KVM的网络使用中,网桥(bridge)模式可以让客户机和宿主机共享一个物理网络设备连接网络,客户机有自己的独立IP地址,可以直接连接与宿主机一模一样的网络,客户机可以访问外部网络,外部网络也可以直接访问客户机(就像访问普通物理主机一样)。即使宿主机只有一个网卡设备,使用bridge模式也可让多个客户机与宿主机共享网络设备。bridge模式使用非常方便,应用也非常广泛。
用网桥实现NAT模式
NAT(Network Addresss Translation,网络地址转换)属于广域网接入技术的一种,它将内网地址转化为外网的合法IP地址,它被广泛应用于各种类型的Internet接入方式和各种类型的网络之中。NAT将来自内网IP数据包的包头中的源IP地址转换为一个外网的IP地址。众所周知,IPv4的地址资源已几近枯竭,而NAT使内网的多个主机可以共用一个IP地址接入网络,这样有助于节约IP地址资源,这也是NAT最主要的作用。另外,通过NAT访问外部网络的内部主机,其内部IP对外是不可见的,这就隐藏了NAT内部网络拓扑结构和IP信息,也就能够避免内部主机受到外部网络的攻击。客观事物总是有正反两面性的,没有任何技术是十全十美的。NAT技术隐藏了内部主机细节,从而提高了安全性。但是如果NAT内的主机作为Web或数据库服务器需要接受来自外部网络的主动连接,这时NAT就表现出了局限性。不过,可以在拥有外网IP的主机上使用iptables等工具实现端口映射,从而让外网将这个外网IP的一个端口的访问被重新映射到NAT内网的某个主机的相应端口上去。
在QEMU/KVM中,默认使用IP伪装的方式实现NAT,而不是使用SNAT(Source-NAT)或DNAT(Destination-NAT)的方式。

在KVM中配置客户机的NAT网络方式,需要在宿主机中运行一个DHCP服务器给宿主机分配NAT内网的IP地址,可以使用dnsmasq工具来实现。在KVM中,DHCP服务器为客户机提供服务的基本架构如图所示。

QEMU内部的用户模式网络
在没有任何“-net”参数时,QEMU默认使用的是“-net nic-netuser”的参数,提供了一种用户模式(user-mode)的网络模拟。使用用户模式的网络的客户机可以连通宿主机及外部的网络。用户模式网络完全是由QEMU自身实现的,不依赖于其他的工具(如前面提到的bridge-utils、dnsmasq、iptables等),而且不需要root用户权限(前面介绍过的bridge模式和NAT模式在配置宿主机网络和设置iptables规则时一般都需要root用户权限)。QEMU使用Slirp 实现了一整套TCP/IP协议栈,并且使用这个协议栈实现了一套虚拟的NAT网络。
由于其使用简单、独立性好、不需root权限、客户机网络隔离性好等优势,用户模式网络是QEMU的默认网络配置。不过,用户模式网络也有以下3个缺点:
- 由于其在QEMU内部实现所有网络协议栈,因此其性能较差。
- 不支持部分网络功能(如ICMP),所以不能在客户机中使用ping命令测试外网连通性。
- 不能从宿主机或外部网络直接访问客户机。
参考
KVM实战:原理、进阶与性能调优
Slirp, the PPP/SLIP-on-terminal emulator
相关文章:
QEMU网络配置简介
本文简单介绍下qemu虚拟机网络的几种配置方式。 通过QEMU的支持,常见的可以实现以下4种网络形式: 基于网桥(bridge)的虚拟网络。基于NAT(Network Addresss Translation)的虚拟网络。QEMU内置的用户模式网…...
28.Marshal.PtrToStringAnsi C#例子
//怎么说呢,这个代码Marshal的英文意思有将军,控制等等, //我的理解是类似于console控制台。 //然后后面这个Ansi是一种ASCII的扩展,还有其他编码方式可选 就是一个把后面的指针转化为字符串的一个代码 这是用法…...
基于feapder爬虫与flask前后端框架的天气数据可视化大屏
# 最近又到期末了,有需要的同学可以借鉴。 一、feapder爬虫 feapder是国产开发的新型爬虫框架,具有轻量且数据库操作方便、异常提醒等优秀特性。本次设计看来利用feapder进行爬虫操作,可以加快爬虫的速率,并且简化数据入库等操作…...
Linux隐藏登录和清除历史命令以及其他相关安全操作示例
隐藏登录 ssh -T rootxxx.xxx.xxx.xxx /bin/bash -i 命令拆解-T :告诉ssh客户端,不要分配一个TTY(伪终端)root :连接用户xxx.xxx.xxx.xxx :连接的服务器ip地址/bin/bash :在远程服务器上启动…...
从授权校验看SpringBoot自动装配
背景 最近需要实现一个对于系统的授权检测功能,即当SpringBoot应用被启动时,需要当前设备是否具有有效的的授权许可信息,若无则直接退出应用。具体的实现方案请继续看下文。 环境 Ruoyi-Vue SpringBoot3 RuoYi-Vue: 🎉 基于Spr…...
tensorboard的界面参数与图像数据分析讲解
目录 1.基础概念: (a)精确率与召回率: (b)mAP: (c)边界框损失: (d)目标损失: (e)分类损失: (f):学习率: 2.设置部分(最右边部分): GENERAL(常规设置…...
MTK 平台关于WIFI 6E P2P的解说
一 前言 官方 P2P 6E 设计原理,请查看这个网站 hostap - hostapd/wpa_supplicant 配置:p2p_6ghz_disable 允许上层指定是否允许6G连接 仅允许6G用于WFD –不允许6G用于纯P2P 缺点:存在很多 IOT issues 如:一些物联网设备无法识别6G类/信道,可能存在物联网问…...
离线语音识别+青云客语音机器人(幼儿园级别教程)
1、使用步骤 确保已安装以下库: pip install vosk sounddevice requests pyttsx3 2、下载 Vosk 模型: 下载适合的中文模型,如 vosk-model-small-cn-0.22。 下载地址: https://alphacephei.com/vosk/models 将模型解压后放置在…...
leetcode hot 100 跳跃游戏
55. 跳跃游戏 已解答 中等 相关标签 相关企业 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则…...
陪诊陪护助浴系统源码:JAVA养老护理助浴陪诊小程序医院陪护陪诊小程序APP源码
JAVA养老护理助浴陪诊小程序及医院陪护陪诊APP:打造智慧养老新生态 在人口老龄化日益加剧的当下,养老护理服务的需求日益增长,而传统的养老服务模式已难以满足日益多样化的需求。为此,我们基于JAVA技术栈,精心打造了一…...
怎么在家访问公司服务器?
在日常工作中,特别是对信息技术从业者而言,工作往往离不开公司的服务器。他们需要定期访问服务器,获取一些关键的机密文件或数据。如果您在家办公,并且需要处理未完成的任务,同时需要从公司服务器获取所需的数据&#…...
asp.net core框架搭建4-部署IIS/Nginx/Docker
文章目录 系列文章一、Linux上部署Nginx1.1 Centos 安装配置环境1.2 使用Systemctl 控制Nginx 二、部署IIS三、部署Docker3.1 创建 Dockerfile 文件3.2 构建 Docker 镜像3.3 运行 Docker 容器3.4 检查容器运行情况 结束语 作者:xcLeigh 文章地址:https:/…...
ubuntu中zlib安装的步骤是什么
参考:https://www.yisu.com/ask/40496522.html 在Ubuntu中安装zlib的步骤如下: 打开终端,输入以下命令更新包列表: sudo apt update复制代码 安装zlib库和开发文件: sudo apt install zlib1g zlib1g-dev复制代码 安装完成后&a…...
代码随想录算法训练营第二十天-二叉树-669. 修剪二叉搜索树
对于递归的写法除了大写的服字,无话可说由于是修剪二叉树,所以会有明确的方向性当某一结点小于最小值,说明其左子树全部要修剪掉当某一结点大于最大值,说明其右子树全部要修剪掉 #include <iostream>struct TreeNode {int …...
发现API安全风险,F5随时随地保障应用和API安全
分析数据显示,目前超过90%的基于Web的网络攻击都以API端点为目标,试图利用更新且较少为人所知的漏洞,而这些漏洞通常是由安全团队未主动监控的API所暴露。现代企业需要一种动态防御策略,在风险升级成代价高昂、令人警惕且往往无法…...
【AI学习】2024年末一些AI总结的摘录
看到不少的总结,边摘录边思考。尤其是这句话:“人类真正的问题是:我们拥有旧石器时代的情感、中世纪的制度和神一般的技术”。 22024生成模型综述 来自爱可可-爱生活 2024年见证了AI领域的重大飞跃。从OpenAI的主导地位到Claude的异军突起&…...
ws长时间不发消息会断连吗?
目录 一、ws长时间不发消息会断连吗1. **服务器端的空闲连接处理**2. **客户端的空闲连接处理**3. **网络设备的干预**4. **WebSocket Ping/Pong 机制** 二、为什么在使用nginx代理的情况下,长时间未活动的 WebSocket 连接可能会被中断或关闭1. **Nginx 的超时配置*…...
使用 ASP.NET Core wwwroot 上传和存储文件
在 ASP.NET Core 应用程序中上传和存储文件是用户个人资料、产品目录等功能的常见要求。本指南将解释使用wwwroot存储图像(可用于文件)的过程以及如何在应用程序中处理图像上传。 步骤 1:设置项目环境 确保您的 ASP.NET 项目中具有必要的依…...
【每日学点鸿蒙知识】人脸活体检测、NodeController刷新、自动关闭输入框、Row设置中间最大宽、WebView单例
1、HarmonyOS 人脸活体检测调用? H5调用应用侧方法可参考以下demo: index.ets Web()//注册方法.javaScriptProxy({object: this.testObj,name: "testObjName",methodList: ["getLocationTS"],controller: this.webController})cla…...
Android TV端弹出的PopupWindow没有获取焦点
在 TV 开发中,焦点管理是通过 Focus Navigation 实现的,PopupWindow 默认不接受焦点,导致遥控器无法选择弹窗内的控件。这是因为 PopupWindow 默认不会将焦点传递到其内容视图上。 要解决问题,可以通过以下步骤调整 PopupWindow …...
2026年阿里云OpenClaw/Hermes Agent配置Token Plan集成步骤解析
2026年阿里云OpenClaw/Hermes Agent配置Token Plan集成步骤解析。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...
若依框架菜单管理进阶:从零构建独立详情页面的完整实践
1. 若依框架菜单管理基础与详情页需求分析 第一次接触若依框架的开发者可能会对它的菜单管理系统感到困惑。作为一个基于Spring Boot和Vue.js的前后端分离框架,若依的菜单管理实际上扮演着系统导航和权限控制的双重角色。在标准代码生成器生成的页面中,…...
如何用N_m3u8DL-RE破解加密流媒体:跨平台下载的终极指南
如何用N_m3u8DL-RE破解加密流媒体:跨平台下载的终极指南 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …...
告别Xshell:免费利器FinalShell的Linux远程连接与高效运维实战
1. 为什么选择FinalShell替代Xshell? 作为长期使用Xshell的老用户,我完全理解大家对这款经典SSH客户端的依赖。但最近两年,我逐渐将团队的所有运维工作迁移到了FinalShell。这个决定不仅帮我们省下了每年数千元的软件授权费用,更重…...
【Android】CloneTTS最强朗读听书引擎-可克隆一切音色
【Android】CloneTTS最强朗读听书引擎-可克隆一切音色 链接:https://pan.xunlei.com/s/VOsu4mh3O_d7zjeERkKPfcG4A1?pwddi3y# CloneTTS 是一款运行在安卓系统本地的文字转语音(TTS)原生引擎,允许用户离线克隆所需的声音并直接使用该声音来朗读书籍或长…...
工作流的常见模式 [ 2 ]
协调者 - 工作者模式(Orchestrator-Workers)概念好,我们接下来继续来看第4种工作模式。第4种工作模式呢它叫协调者工作者模式。什么是协调者和工作者模式呢?跟大家讲解这个模式,我们需要结合实际当中的例子,…...
OFDM仿真(Matlab)项目推荐:深入理解与掌握正交频分复用技术
OFDM仿真(Matlab)项目推荐:深入理解与掌握正交频分复用技术 【下载地址】OFDM仿真matlab完整可运行 本资源提供了一个完整的OFDM(正交频分复用)仿真代码,基于Matlab平台开发。该仿真代码包含了OFDM系统中的多个关键模块࿰…...
探索OpenHarmony蓝牙BLE测试HAP:高效验证与优化
探索OpenHarmony蓝牙BLE测试HAP:高效验证与优化 【下载地址】OpenHarmony鸿蒙蓝牙ble测试hap 本仓库提供的是用于OpenHarmony系统下的蓝牙BLE(低功耗蓝牙)测试HAP(HarmonyOS Ability Package)。此HAP旨在帮助开发者和测…...
herebedragons完整指南:20+种3D渲染API对比实战
herebedragons完整指南:20种3D渲染API对比实战 【免费下载链接】herebedragons A basic 3D scene implemented with various engines, frameworks or APIs. 项目地址: https://gitcode.com/gh_mirrors/he/herebedragons herebedragons是一个独特的开源项目&a…...
Linux应用回滚流程排查方法
Linux应用回滚流程排查方法本文面向具备一定 Linux 基础的技术人员,围绕应用回滚流程展开,重点讨论版本切换、配置恢复和数据兼容。在中级运维和系统管理工作中,这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交织在一起…...
