我有一个使用以下选项启动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/