我有一个使用以下选项启动qemu的脚本:
qemu-system-x86_64 [...] -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:1522 -net dump,file=/tmp/vm0.pcap -redir tcp:9999::9 -redir tcp:17010::17010 -redir tcp:17013::17013
我想更新脚本以与现代qemu选项一起使用。

我尝试使用manual page中记录的以下参数
qemu-system-x86_64 [...] -net nic,model=rtl8139 -net dump,file=/tmp/vm0.pcap -net user,id=tcp1522,hostfwd=tcp::5555-:1522 -netdev user,id=tcp9,hostfwd=tcp::9999-:9 -netdev user,id=tcp17010,hostfwd=tcp::17010-:17010 -netdev user,id=tcp17013,hostfwd=tcp::17013-:17013
但是 guest 无法再访问网络,主机也无法在转发的端口上访问该网络。

不推荐使用的-redir选项的确切含义是什么?

最佳答案

在@PeterMaydell评论和更多阅读之后,我了解了qemu中的-device-netdev选项之间的关系。

我的脚本中使用的较旧-redir选项的正确翻译是:

-netdev user,id=ethernet.0,hostfwd=tcp::5555-:1522,hostfwd=tcp::9999-:9,hostfwd=tcp::17010-:17010,hostfwd=tcp::17013-:17013
-device rtl8139,netdev=ethernet.0

-netdev user中,您指定 guest 的单个虚拟以太网的所有host-> guest端口转发。 id选项标识此类虚拟网络接口(interface)(在这种情况下为ethernet.0)。

然后,-device参数可以定义要针对该接口(interface)进行仿真的硬件(与netdev=ethernet.0相关),以便访客看到该硬件就位并打开转发的端口。

关于networking - 如何替换 `qemu-system -redir`命令参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46041082/

10-15 21:50