当前位置:网站首页>QEMU guest与host通过网络通信——bridge/hostfwd/guestfwd
QEMU guest与host通过网络通信——bridge/hostfwd/guestfwd
2022-08-10 05:38:00 【denglin12315】
一.开篇大前提
qemu虚拟机器默认是使用nat来上网的——By default(默认qemu就帮你做了), QEMU invokes the -nic and -user options to add a single network adapter to the guest and provide NATed external Internet access. The host and guest will not see each other.
二. 通过hostfwd/guestfwd
1.hostfwd原理和用法说明:
hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport
#将到主机端口 hostport 的TCP 或 UDP 连接重定向到来宾端口 guestport 上的来宾 IP 地址 guestaddr。如果未指定 guestaddr,则其值为 xxx15(内置 DHCP 服务器提供的默认第一个地址)。通过指定hostaddr,可以将规则绑定到特定的主机接口。如果未设置连接类型,则使用 TCP。可以多次给出此选项。
例如,要将主机 X11 连接从屏幕 1 重定向到访客屏幕 0,请使用以下命令:
# 在主机
qemu-system-x86_64 -nic user,hostfwd=tcp:127.0.0.1:6001-:6000
# 这个主机 xterm 应该在来宾 X11 服务器中打开
xterm -display :1
#要将 telnet 连接从主机端口 5555 (host侧申请的一个空闲端口)重定向到来宾上的 telnet 端口,请使用以下命令:
# 在主机上
qemu-system-x86_64 -nic user,hostfwd=tcp::5555-:23
#然后当您在主机上使用时,您连接到来宾 telnet 服务器:
telnet localhost 5555
2.hostfwd实际配置案例:
![]()
![]()
3.guestfwd原理和用法说明:(没有实际使用过)
guestfwd=[tcp]:server:port-dev; guestfwd=[tcp]:server:port-cmd:command
#将访客 TCP 连接转发到端口端口上的 IP 地址服务器到字符设备 dev 或由 cmd:command 执行的程序,该程序为每个连接生成。可以多次给出此选项。
#您可以直接使用 chardev 并在 QEMU 的整个生命周期中使用它,如下例所示:
#在启动时打开10.10.1.1:4321,连接10.0.2.100:1234到它每当
#客人访问它
#的qemu系统-x86_64的-nic用户,guestfwd = TCP:10.0.2.100:1234- TCP:10.10.1.1:4321
#或者,您可以在来宾建立的每个 TCP 连接上执行命令,以便 QEMU 的行为类似于该虚拟服务器的 inetd 进程:
# 在每个到 10.0.2.100:1234 的 TCP 连接上调用 "netcat 10.10.1.1 4321"
# 并将 TCP 流连接到它的 stdin/stdout
qemu-system-x86_64 -nic 'user,id=n1,guestfwd=tcp:10.0。 2.100:1234-cmd:netcat 10.10.1.1 4321'
四. 通过虚拟bridge
1. 软件安装
安装libvirt
2. 安装libvirt成功后,重启网络服务,如下:

3.网络拓扑结构

4.启动虚拟机的命令行
sudo tunctl -b -u ldeng
sudo ifconfig tap0 up
sudo brctl addif virbr0 tap0
qemu-system-x86_64 -hda debian.qcow -enable-kvm -cpu host -smp 8 -m 4096 -net nic -net tap,ifname=tap0,script=no,downscript=no &边栏推荐
猜你喜欢
随机推荐
UnityShader入门精要-unity shader基础
Why need to hot update game?
UnityShader入门精要--Unity中的基础光照
酸回收树脂工艺技术详解
二次元卡通渲染之描边
UnityShader入门精要-渲染纹理 镜子 玻璃 效果
电池级碳酸氢锂除杂质钙镁离子工艺原理
Two-dimensional cartoon rendering of strokes
Using parseInt() in TypeScript
mysql分组排序并取各分组前几个数据
Unity object pool implementation
OpenGL学习笔记(LearnOpenGL)-第三部分 绘制矩形
Myunity框架笔记3
The use of pointers from the exchange of two data values (C language implementation)
手把手教你改内核源码--sysfs虚拟文件系统1
二叉树 6/21 91-95
Unity屏幕坐标转世界坐标,鼠标点击获取三维位置
内核映像文件格式
电路分析中的电容器的基本知识
21天学习挑战赛--字符串切割









