qemu启动后网络怎么设置?配合qemu-system-riscv64的命令设置
QEMU启动的时候,可以选择组网方式,一般有两种选择,user模式和tap模式
user模式就是用NAT,tap模式就是用bridge网桥模式。以前也有过一次实践:FreeBSD RISCV 在QEME中实践-网络配置_pkg.txz: not found-CSDN博客
user NAT模式
参数设置类似这样
-netdev user,id=net0,ipv6=off,hostfwd=tcp::8022-:22 -netdev -device virtio-net-device,netdev=net0
这样的好处是省心省力,不用考虑再去设置任何东西,QEMU仿真系统启动之后,直接就能通过nat访问外网。 关键是user模式可以直接在普通用户下使用。所以建议使用user模式。
tap 网桥模式
QEMU启动后的网络设置通常涉及将QEMU虚拟机的网卡与宿主机网卡绑定,以实现虚拟机和宿主机之间的网络连通。参数设置类似这样:
-netdev tap,id=net0,ipv6=off,hostfwd=tcp::8022-:22,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown, -device virtio-net-device,netdev=net0
好处是网桥可以让虚拟机互相之间也能通信,但是缺点就是配置复杂,费时费力。另外tap模式需要在管理员权限下使用,普通用户无权限运行。
以下是一般步骤:
-
创建TAP虚拟网卡:
在宿主机上,你需要创建一个TAP虚拟网卡。这可以通过ip tuntap命令来完成。例如:sudo ip tuntap add dev tap0 mode tapsudo ip link set dev tap0 up这将创建一个名为
tap0的TAP设备,并将其设置为活动状态。 -
配置TAP设备IP地址:
接下来,你需要为TAP设备配置一个IP地址。这可以通过ip address add命令来完成。例如:sudo ip address add dev tap0 192.168.2.128/24这将为
tap0设备分配IP地址192.168.2.128,并设置子网掩码为255.255.255.0。 -
QEMU启动参数:
当启动QEMU虚拟机时,你需要使用-net nic和-net tap参数来指定虚拟机的网卡和TAP设备。例如:qemu-system-x86_64 -hda /path/to/your/disk.img -net nic -net tap,ifname=tap0,script=/etc/qemu-ifup其中,
-hda参数指定虚拟机的磁盘映像文件,-net nic参数创建一个新的虚拟网卡,-net tap参数将该虚拟网卡与TAP设备tap0绑定。script=/etc/qemu-ifup指定了一个脚本,该脚本在QEMU启动时会被调用,用于配置TAP设备的网络设置。 -
配置
/etc/qemu-ifup脚本(可选):/etc/qemu-ifup脚本用于在QEMU启动时配置TAP设备的网络设置。这个脚本的具体内容取决于你的网络环境和需求。一个简单的示例脚本可能只是简单地启动TAP设备,但更复杂的脚本可能会配置路由、防火墙规则等。 -
测试网络连接:
一旦QEMU虚拟机启动并配置了网络,你就可以在虚拟机内部使用ping命令或其他网络工具来测试与宿主机的网络连接了。
请注意,上述步骤可能因你的操作系统、QEMU版本和网络环境的不同而略有差异。确保参考适用于你的具体情况的文档和教程。
在Ubuntu24.04下实践
这台Ubuntu24.04是在Windows10下的仿真环境,网络信息:
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 172.25.183.186 netmask 255.255.240.0 broadcast 172.25.191.255inet6 fe80::215:5dff:fe3c:d3f6 prefixlen 64 scopeid 0x20<link>ether 00:15:5d:3c:d3:f6 txqueuelen 1000 (Ethernet)RX packets 3295 bytes 4999578 (4.9 MB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 2264 bytes 160405 (160.4 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
创建tap0虚拟网卡
sudo ip tuntap add dev tap0 mode tap
sudo ip link set dev tap0 up
用ifconfig tap0看看新加的tap0口:
tap0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500ether 3e:93:14:dc:94:1c txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果想删除,使用del命令删除tap0
sudo ip tuntap del tap0 mode tap
配置TAP设备IP地址:
接下来,需要为TAP设备配置一个IP地址。这可以通过ip address add命令来完成。例如:
sudo ip address add dev tap0 172.25.183.187/20
这将为tap0设备分配ip地址172.25.183.187,并设置子网掩码为255.255.240.0
QEMU启动仿真
QEMU启动参数:
当启动QEMU虚拟机时,需要使用-net nic和-net tap参数来指定虚拟机的网卡和TAP设备。例如在这篇文档里:在Ubuntu下运行QEMU仿真FreeBSD riscv64系统-CSDN博客
user NAT模式
使用user启动NAT为:
qemu-system-riscv64 -machine virt -m 2048M -smp 6 -nographic \-kernel u-boot.bin \-drive file=FreeBSD-14.2-RELEASE-riscv-riscv64-zfs.raw,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 \-netdev user,id=net0,ipv6=off,hostfwd=tcp::8022-:22 \-netdev tap -device virtio-net-device,netdev=net0
这样就可以NAT上网了!
tap网桥模式(未成功)
加上tap设备桥接后的QEMU启动命令为:
sudo qemu-system-riscv64 -machine virt -m 2048M -smp 6 -nographic -kernel u-boot.bin -drive file=FreeBSD-14.2-RELEASE-riscv-riscv64-zfs.raw,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -netdev tap,id=net0 -device virtio-net-device,netdev=net0
不过启动的时候报错:W: /etc/qemu-ifup: no bridge for guest interface found
所以网络还没调好。
调试
如何看qemu支持的网卡
qemu-system-aarch64 -M virt -nic model=help
显示
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
NVD3D10: CPU cyclestats are disabled on client virtualization
NVD3D10: CPU cyclestats are disabled on client virtualization
Available NIC models:
e1000
e1000-82544gc
e1000-82545em
e1000e
i82550
i82551
i82557a
i82557b
i82557c
i82558a
i82558b
i82559a
i82559b
i82559c
i82559er
i82562
i82801
igb
ne2k_pci
pcnet
rtl8139
tulip
virtio-net-pci
virtio-net-pci-non-transitional
virtio-net-pci-transitional
vmxnet3
相关文章:
qemu启动后网络怎么设置?配合qemu-system-riscv64的命令设置
QEMU启动的时候,可以选择组网方式,一般有两种选择,user模式和tap模式 user模式就是用NAT,tap模式就是用bridge网桥模式。以前也有过一次实践:FreeBSD RISCV 在QEME中实践-网络配置_pkg.txz: not found-CSDN博客 user…...
如何测量分辨率
一、什么是分辨率? 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率,但是相机在在不同的对比度的情况下还原低,中和高频率的能力,也可以显示全面综合的信息。…...
汇总贴:cocos creator
1 cocoscreator-doc-TS:目录-CSDN博客 访问节点和组件 常用节点和组件接口 创建和销毁节点 加载和切换场景 获取和设置资源 监听和发射事件 节点系统事件 缓动系统(cc.tween) 使用计时器 使用对象池 使用 TypeScript 脚本 模块化脚本 脚本执行顺序 全局…...
[N1CTF 2018]eating_cms
[N1CTF 2018]eating_cms 知识点 文件上传 解题 这个题感觉还好,知识点真心不难,就是全混在一起。 思路差不多挺离谱 首先看到,有一个登录界面,然后猜测有注册界面 admin注册不了,随便注册一个账号。 注册之后&…...
重拾设计模式--建造者模式
文章目录 建造者模式(Builder Pattern)概述建造者模式UML图作用:建造者模式的结构产品(Product):抽象建造者(Builder):具体建造者(Concrete Builderÿ…...
【机器学习】以机器学习为翼,翱翔网络安全创新苍穹
我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 在数字化浪潮汹涌澎湃的当下,网络安全如同守护数字世界的坚固堡垒,其重要性不言而喻。而机器学习技术的蓬勃…...
人工智能在VR展览中扮演什么角色?
人工智能(AI)在VR展览中扮演着多重关键角色,这些角色不仅增强了用户体验,还为展览的组织者提供了强大的工具。 接下来,由专业从事VR展览制作的圆桌3D云展厅平台为大家介绍AI在VR展览中的一些主要作用: 个性…...
mysql,创建数据库和用户授权核心语句
一.库操作1.创建库create database if not exists 库名 default 字符集 default 校对规则2.删除库drop database if exists 库名3.修改库的,字符集,校对规则alter databse 库名 default 字符集 default 校对规则4.查看当前使用的库seclect databse();5.查看库show databases;…...
日期区间选择器插件的操作流程
我们知道,在开发过程中,为了能够在规定时间内完成项目,有时候我们都会使用插件来大大提高我们的开发效率,有些插件是可以直接拿来用,但是有些插件拿过来之后是需要进行修改,在使用插件的时候还有很多的注意…...
【WRF教程第3.2期】预处理系统 WPS详解:以4.5版本为例
预处理系统 WPS 详解:以4.5版本为例 WPS 嵌套域(WPS Nested Domains)USGS 和 MODIS 土地利用重力波拖拽方案静态数据(Gravity Wave Drag Scheme Static Data)1. 什么是重力波拖拽方案(GWDO)静态…...
深度学习的DataLoader是什么数据类型,为什么不可用来索引
在 Python 中,DataLoader是torch.utils.data.DataLoader类的实例对象,用于加载数据,它本身不是一种基本数据类型,而是一种特殊的迭代器类型,主要用于按批次加载数据,以下是其通常不可索引的原因:…...
物理信息神经网络(PINN)八课时教案
物理信息神经网络(PINN)八课时教案 第一课:物理信息神经网络概述 1.1 PINN的定义与背景 物理信息神经网络(Physics-Informed Neural Networks,简称PINN)是一种将物理定律融入神经网络训练过程中的先进方…...
Linux setfacl 命令详解
文章目录 Linux setfacl 命令详解一、ACL 和 setfacl 简介二、基本语法三、常用操作1. 查看 ACL2. 为用户设置权限3. 为组设置权限4. 删除 ACL 条目5. 设置默认 ACL6. 递归设置 ACL 四、示例操作1. 创建示例目录和文件2. 设置 ACL3. 验证 ACL 五、注意事项六、总结 Linux setfa…...
电商环境下的财务ERP系统架构
先介绍一下自己的工作经历,2002年开始进入ERP实施行业,专注于O记EBS系统,正好赶上中国经济和信息化高度发展的阶段,先后实施过很多大国企和民企的大型ERP项目,在实施过程中逐渐对ERP系统的架构、模块设计有更深入的认识…...
Linux相关概念和易错知识点(25)(信号原理、操作系统的原理、volatile)
目录 1.信号的产生 (1)kill (2)raise、abort 2.对block、pending、handler表的管理 (1)信号集(sigset_t) (2)block表的管理 ①操作相关的函数 ②sigpr…...
线上问题——频繁 Full GC 问题的排查思路
文章目录 一、查看 GC 日志二、分析内存泄漏三、检查对象生命周期四、优化代码五、调整垃圾回收策略六、使用监控工具 一、查看 GC 日志 启用 GC 日志 在 Java 应用中,需要在启动参数中添加适当的参数来启用 GC 日志记录。可以使用-XX:PrintGCDetails、-XX:PrintGCD…...
《探秘 Qt Creator Manual 4.11.1》
《探秘 Qt Creator Manual 4.11.1》 一、Qt Creator 4.11.1 概述二、功能特性全解析(一)跨平台能力展示(二)代码编辑优势(三)版本控制集成(四)特定 Qt 功能呈现(五&#…...
level2逐笔委托查询接口
沪深逐笔委托队列查询 前置步骤 分配数据库服务器 查询模板 以下是沪深委托队列查询的请求模板: http://<数据库服务器>/sql?modeorder_book&code<股票代码>&offset<offset>&token<token>查询参数说明 参数名类型说明mo…...
在Linux系统安装配置 MySQL 和 hive,hive配置为远程模式
前提:已安装配置好了Hadoop环境,因为hive的底层是Hadoop 1 Mysql安装 搜索Centos7自带的mariadb rpm -qa|grep mariadb 卸载mariadb rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps 再搜索一次看看是否还存在 rpm -qa|grep mariadb 安装mysql 创…...
如何写好一份科技报告
如何写好一份技术文档 一、科技报告写作的整体框架封面与摘要:引言:理论框架与文献综述:实验方法与材料:实验结果:结果分析与讨论:结论:参考文献:附录: 二、科技报告写作…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
