QEMU - user network

2024-09-01 11:20
文章标签 network user qemu

本文主要是介绍QEMU - user network,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • Documentation/Networking - QEMU
  • QEMU/KVM中的网络虚拟化--Part2 User Networking | Xiaoye Zheng's blog (zxxyy.github.io)
  • QEMU Network — ARM SoC Device Assignment Notes documentation (cwshu.github.io)
  • slirp / libslirp · GitLab
  • GitHub - virtualsquare/libvdeslirp: libslirp for Linux made easy peasy

1.架构

理解:

实际QEMU和Host OS是基于用户层的forward。

Host OS: 会采用Host OS上的tcp/ip stack。

QEMU: 会采用Guest OS上的tcp/ip stack和 QEMU的SLIRP network stack。

QEMU的网络后端 user - SLIRP 和 Host OS之间是通过socket来沟通,用的实际用户数据(不带任何header),两边分别有单独的连接。

2.数据流

3.实验

3.1 qemu编译

依赖的lib: libslirp-dev (实现SLIRP 网络协议栈)

apt install libslirp-dev

3.2 编译命令

configure --enable-slirp

3.3 启动qemu - 采用user network

-device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5555-:22

启动后在monitor中查看网络情况 - 可以看到网络前后端的信息。

注意:-monitor stdio 和 -nographic 不能同时用,否则,会报如下错误。

3.4 Guest os网卡配置

guest os启动后可能网卡没有自动配网,需要手动配网。-- 可能需要开启dhcp client。

理论上,guest os会通过dhcp client和SLIRP上的dhcp server沟通,自动配置guest os的网卡。

3.5 在host上用ssh登录Guest os

ssh localhost -p 5555

1. Host OS

用的host的 localhost ip 和 host OS的tcpip stack。

可以看出 tcp连接是建立成功的,后面由于guest os/SLIRP上ssh不支持,SLIRP就断开guest和host的tcp连接了。

2. Guest OS

Guest OS tcpip stack 和 SLIRP tcpip stack沟通。

可以看出guest上没有支持sshd,所有该ssh的tcp连接没有成功。

apt install openssh-server

4. user网络后端代码

 

 可能slirp guest的backend 没有启动成功,导致 guest os网卡配置不起来 --- 一直link down状态。

这篇关于QEMU - user network的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126790

相关文章

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

Linux 云计算底层技术之一文读懂 Qemu 架构

Qemu 架构概览 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

深度学习--对抗生成网络(GAN, Generative Adversarial Network)

对抗生成网络(GAN, Generative Adversarial Network)是一种深度学习模型,由Ian Goodfellow等人在2014年提出。GAN主要用于生成数据,通过两个神经网络相互对抗,来生成以假乱真的新数据。以下是对GAN的详细阐述,包括其概念、作用、核心要点、实现过程、代码实现和适用场景。 1. 概念 GAN由两个神经网络组成:生成器(Generator)和判别器(D

QEMU用户模式测试AARCH64程序

QEMU的两种模式 QEMU(快速模拟器)是一个开源的机器模拟器和虚拟化器,它能够模拟多种处理器架构,并且可以在不同平台上运行。QEMU 支持两种模式:用户模式和系统模式。 用户模式(User Mode): 用户模式下的 QEMU 仅模拟用户空间的二进制执行环境,不模拟底层硬件。这种模式下,QEMU 可以运行不同架构编译的二进制程序,而不需要这些程序与宿主机的架构相匹配。用户模式通常用于测试和

某城user_dun,js逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解某城ly headers中参数userdun的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有

user is not in the sudoers file

出现这种情况是因为用户user没有sudo权限。解决办法自然是将当前用户添加到sudo成员中。  1.以root身份登录。 2.更改文件权限:  # chmod u+w /etc/sudoers  3.在/etc/sudoers文件中,root ALL=(ALL)ALL下方添加: user ALL=(ALL)ALL 保存退出。 4.还原文件权限:  # chmod u-w /etc

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

ubuntu22.04 qemu 安装windows on arm虚拟机

ubuntu22.04 qemu 安装windows on arm虚拟机 iso: https://uupdump.net/ https://massgrave.dev/windows_arm_links vivo driver: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

F12抓包05:Network接口测试(抓包篡改请求)

课程大纲         使用线上接口测试网站演示操作,浏览器F12检查工具如何进行简单的接口测试:抓包、复制请求、篡改数据、发送新请求。         测试地址:https://httpbin.org/forms/post ① 抓包:鼠标右键打开“检查”工具(F12),tab导航选择“网络”(Network),输入前3项点击提交,可看到录制的请求和返回数据。