QEMU网络--端口重定向

16 篇文章 0 订阅
7 篇文章 0 订阅

要在用户模式网络下,允许网络连接到guest OS,可以将主机操作系统上的端口重定向到guest OS上的端口。 这对于支持guest OS里的文件共享、Web 服务器和 SSH 服务器很有用。(跟docker容器的端口重定向同样的应用场景)

 

以下是如何在用户模式网络下设置 QEMU来与 Windows XP guest共享文件和网页。 主机上的 TCP 端口 5555 被重定向到guest的端口 80(web服务器),主机上的 TCP 端口 5556 被重定向到guest的端口 445 (Windows 网络):

 

qemu -m 256 -hda disk.img -redir tcp:5555::80 -redir tcp:5556::445 &

...

mkdir -p /mnt/qemu

mount -t cifs //localhost/someshare /mnt/qemu -o user=test,pass=test,dom=workgroup,port=5556

firefox http://localhost:5555/

 

注意:当通过 Windows 网络从guest共享文件夹到主机时,您必须为 mount 登录时用的用户指定密码; 如果您尝试不使用密码,则挂载将失败并出现 I/O 错误。(这是CIFS协议的特性)

 

语法如下:

qemu -redir {tcp|udp}:host_port:[guest_ip]:guest_port

但是,貌似这个选项已经被取代了!改成-netdev user,hostfwd=

When using the '-netdev user,hostfwd=...' option, TCP or UDP connections can be redirected from the host to the guest. It allows for example to redirect X11, telnet or SSH connections.

当使用 '-netdev user,hostfwd=...' 选项时,TCP 或 UDP 连接可以从主机重定向到guest OS。 例如,它允许重定向 X11、telnet 或 SSH 连接。

注意: 不要将新的 hostfwd 与 -tftp -bootp -smb -redir选项同时使用, 混用会导致未定义的结果。

 

语法变成如下

hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport

3ca9c1a812a347109b90926f56d40187.png

sudo qemu-system-x86_64 -m 2048 -enable-kvm ubuntu.img -net user,hostfwd=tcp:192.168.150.158:2333-:6666 -net nic

注记:使用 -net user 必须同 -net nic配合,否则如下

46d58e1a485d4549b95b7e68bb620a14.png

正确执行如下,将host的2333重定向到guest的6666端口。

bbb86dc4fd45428db58c66b5eb86ae8d.png

 接下来在guest中监听6666端口。

d28277b1b0484cdab52ef3d6a6d6383e.png

 在host中连接2333端口,并发送信息。

840feffda078415fab370dbde5d5ab71.png

 guest中成功收到了信息。

ab60f15e6cea4d2591e1dbe3f23e053b.png

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你在编译后运行`qemu --version`命令时,无法识别`qemu`命令,可能是因为`qemu`的可执行文件没有正确地添加到系统的可执行路径中。你可以尝试以下几个步骤来解决这个问题: 1. 确认编译成功:首先,请确保你已经成功地编译了`qemu`。编译过程可能会有一些依赖项和配置选项,你需要按照官方文档或编译说明进行操作。 2. 检查可执行文件路径:确认编译后的`qemu`可执行文件所在的路径。你可以使用`ls`命令或者文件管理器来查找该文件。通常情况下,编译后的可执行文件位于`build`目录或者指定的安装目录中。 3. 添加到系统路径:将`qemu`的可执行文件所在的路径添加到系统的可执行路径中。这样系统就能够正确地找到并执行`qemu`命令。具体的步骤可能因操作系统而异,以下是一些常见操作系统的示例: - Linux/macOS:可以将`qemu`的可执行文件所在的路径添加到`PATH`环境变量中。可以通过编辑`.bashrc`或`.bash_profile`文件,并在其中添加类似于以下内容的行: ``` export PATH=/path/to/qemu:$PATH ``` 然后保存文件并重新启动终端,或者执行`source .bashrc`或`source .bash_profile`命令使环境变量生效。 - Windows:可以将`qemu`的可执行文件所在的路径添加到系统的环境变量中。可以通过以下步骤进行操作: - 在桌面上,右键点击"此电脑"(或"我的电脑"),选择"属性"。 - 在弹出的窗口中,点击"高级系统设置"。 - 在"系统属性"窗口中,点击"环境变量"按钮。 - 在"环境变量"窗口中,找到"Path"变量,并点击"编辑"。 - 在弹出的窗口中,点击"新建",然后输入`qemu`的可执行文件所在的路径。 - 点击"确定"保存修改,并关闭所有窗口。 - 重新启动命令提示符或PowerShell窗口,然后尝试运行`qemu --version`命令。 如果你按照上述步骤操作后仍然无法解决问题,请提供更多详细信息,例如你的操作系统、编译过程中的任何错误信息等,以便我能够更好地帮助你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值