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

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模式需要在管理员权限下使用,普通用户无权限运行。

以下是一般步骤:

  1. 创建TAP虚拟网卡
    在宿主机上,你需要创建一个TAP虚拟网卡。这可以通过ip tuntap命令来完成。例如:

    sudo ip tuntap add dev tap0 mode tap
    sudo ip link set dev tap0 up

    这将创建一个名为tap0的TAP设备,并将其设置为活动状态。

  2. 配置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

  3. 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设备的网络设置。

  4. 配置/etc/qemu-ifup脚本(可选):
    /etc/qemu-ifup脚本用于在QEMU启动时配置TAP设备的网络设置。这个脚本的具体内容取决于你的网络环境和需求。一个简单的示例脚本可能只是简单地启动TAP设备,但更复杂的脚本可能会配置路由、防火墙规则等。

  5. 测试网络连接
    一旦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启动的时候&#xff0c;可以选择组网方式&#xff0c;一般有两种选择&#xff0c;user模式和tap模式 user模式就是用NAT&#xff0c;tap模式就是用bridge网桥模式。以前也有过一次实践&#xff1a;FreeBSD RISCV 在QEME中实践-网络配置_pkg.txz: not found-CSDN博客 user…...

如何测量分辨率

一、什么是分辨率&#xff1f; 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率&#xff0c;但是相机在在不同的对比度的情况下还原低&#xff0c;中和高频率的能力&#xff0c;也可以显示全面综合的信息。…...

汇总贴:cocos creator

1 cocoscreator-doc-TS:目录-CSDN博客 访问节点和组件 常用节点和组件接口 创建和销毁节点 加载和切换场景 获取和设置资源 监听和发射事件 节点系统事件 缓动系统&#xff08;cc.tween&#xff09; 使用计时器 使用对象池 使用 TypeScript 脚本 模块化脚本 脚本执行顺序 全局…...

[N1CTF 2018]eating_cms

[N1CTF 2018]eating_cms 知识点 文件上传 解题 这个题感觉还好&#xff0c;知识点真心不难&#xff0c;就是全混在一起。 思路差不多挺离谱 首先看到&#xff0c;有一个登录界面&#xff0c;然后猜测有注册界面 admin注册不了&#xff0c;随便注册一个账号。 注册之后&…...

重拾设计模式--建造者模式

文章目录 建造者模式&#xff08;Builder Pattern&#xff09;概述建造者模式UML图作用&#xff1a;建造者模式的结构产品&#xff08;Product&#xff09;&#xff1a;抽象建造者&#xff08;Builder&#xff09;&#xff1a;具体建造者&#xff08;Concrete Builder&#xff…...

【机器学习】以机器学习为翼,翱翔网络安全创新苍穹

我的个人主页 我的领域&#xff1a;人工智能篇&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;&#x1f44d;点赞 收藏❤ 在数字化浪潮汹涌澎湃的当下&#xff0c;网络安全如同守护数字世界的坚固堡垒&#xff0c;其重要性不言而喻。而机器学习技术的蓬勃…...

人工智能在VR展览中扮演什么角色?

人工智能&#xff08;AI&#xff09;在VR展览中扮演着多重关键角色&#xff0c;这些角色不仅增强了用户体验&#xff0c;还为展览的组织者提供了强大的工具。 接下来&#xff0c;由专业从事VR展览制作的圆桌3D云展厅平台为大家介绍AI在VR展览中的一些主要作用&#xff1a; 个性…...

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;…...

日期区间选择器插件的操作流程

我们知道&#xff0c;在开发过程中&#xff0c;为了能够在规定时间内完成项目&#xff0c;有时候我们都会使用插件来大大提高我们的开发效率&#xff0c;有些插件是可以直接拿来用&#xff0c;但是有些插件拿过来之后是需要进行修改&#xff0c;在使用插件的时候还有很多的注意…...

【WRF教程第3.2期】预处理系统 WPS详解:以4.5版本为例

预处理系统 WPS 详解&#xff1a;以4.5版本为例 WPS 嵌套域&#xff08;WPS Nested Domains&#xff09;USGS 和 MODIS 土地利用重力波拖拽方案静态数据&#xff08;Gravity Wave Drag Scheme Static Data&#xff09;1. 什么是重力波拖拽方案&#xff08;GWDO&#xff09;静态…...

深度学习的DataLoader是什么数据类型,为什么不可用来索引

在 Python 中&#xff0c;DataLoader是torch.utils.data.DataLoader类的实例对象&#xff0c;用于加载数据&#xff0c;它本身不是一种基本数据类型&#xff0c;而是一种特殊的迭代器类型&#xff0c;主要用于按批次加载数据&#xff0c;以下是其通常不可索引的原因&#xff1a…...

物理信息神经网络(PINN)八课时教案

物理信息神经网络&#xff08;PINN&#xff09;八课时教案 第一课&#xff1a;物理信息神经网络概述 1.1 PINN的定义与背景 物理信息神经网络&#xff08;Physics-Informed Neural Networks&#xff0c;简称PINN&#xff09;是一种将物理定律融入神经网络训练过程中的先进方…...

Linux setfacl 命令详解

文章目录 Linux setfacl 命令详解一、ACL 和 setfacl 简介二、基本语法三、常用操作1. 查看 ACL2. 为用户设置权限3. 为组设置权限4. 删除 ACL 条目5. 设置默认 ACL6. 递归设置 ACL 四、示例操作1. 创建示例目录和文件2. 设置 ACL3. 验证 ACL 五、注意事项六、总结 Linux setfa…...

电商环境下的财务ERP系统架构

先介绍一下自己的工作经历&#xff0c;2002年开始进入ERP实施行业&#xff0c;专注于O记EBS系统&#xff0c;正好赶上中国经济和信息化高度发展的阶段&#xff0c;先后实施过很多大国企和民企的大型ERP项目&#xff0c;在实施过程中逐渐对ERP系统的架构、模块设计有更深入的认识…...

Linux相关概念和易错知识点(25)(信号原理、操作系统的原理、volatile)

目录 1.信号的产生 &#xff08;1&#xff09;kill &#xff08;2&#xff09;raise、abort 2.对block、pending、handler表的管理 &#xff08;1&#xff09;信号集&#xff08;sigset_t&#xff09; &#xff08;2&#xff09;block表的管理 ①操作相关的函数 ②sigpr…...

线上问题——频繁 Full GC 问题的排查思路

文章目录 一、查看 GC 日志二、分析内存泄漏三、检查对象生命周期四、优化代码五、调整垃圾回收策略六、使用监控工具 一、查看 GC 日志 启用 GC 日志 在 Java 应用中&#xff0c;需要在启动参数中添加适当的参数来启用 GC 日志记录。可以使用-XX:PrintGCDetails、-XX:PrintGCD…...

《探秘 Qt Creator Manual 4.11.1》

《探秘 Qt Creator Manual 4.11.1》 一、Qt Creator 4.11.1 概述二、功能特性全解析&#xff08;一&#xff09;跨平台能力展示&#xff08;二&#xff09;代码编辑优势&#xff08;三&#xff09;版本控制集成&#xff08;四&#xff09;特定 Qt 功能呈现&#xff08;五&#…...

level2逐笔委托查询接口

沪深逐笔委托队列查询 前置步骤 分配数据库服务器 查询模板 以下是沪深委托队列查询的请求模板&#xff1a; http://<数据库服务器>/sql?modeorder_book&code<股票代码>&offset<offset>&token<token>查询参数说明 参数名类型说明mo…...

在Linux系统安装配置 MySQL 和 hive,hive配置为远程模式

前提&#xff1a;已安装配置好了Hadoop环境&#xff0c;因为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 创…...

如何写好一份科技报告

如何写好一份技术文档 一、科技报告写作的整体框架封面与摘要&#xff1a;引言&#xff1a;理论框架与文献综述&#xff1a;实验方法与材料&#xff1a;实验结果&#xff1a;结果分析与讨论&#xff1a;结论&#xff1a;参考文献&#xff1a;附录&#xff1a; 二、科技报告写作…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...