pap*_*tis 5 port-forwarding qemu virt-manager
我已经在 virt-manager 中设置了 Gentoo 来宾,但无法从主机通过 SSH 连接到它。我读过,使用 qemu 我需要进行一些端口转发才能访问来宾计算机中的端口。我在 virt-manager 中找不到任何选项。怎么可能做到这一点?
我在 Ubuntu 16.10 上使用 Virt Manager 1.3.2。
小智 6
只是为了将其记录在网络上的某个地方:
大约两年后,我通过手动将相关的 QEMU 参数添加到 KVM XML 文件(该文件在幕后保存了所有奇特的虚拟化 foo 的配置)成功地做到了这一点。
以下是我为向用户网络授予端口转发权限而执行的步骤;就我而言,将主机的端口 22222 转发到访客的端口 22:
我的模拟机器在这里将被称为ubuntu18.04。
打开 xml 配置以通过 virsh 进行编辑
$ virsh -c qemu:///session edit ubuntu18.04
Run Code Online (Sandbox Code Playgroud)
找到并删除“用户”类型界面的配置,它可能看起来像这样:
<interface type='user'>
<mac address='52:54:00:52:35:ff'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Run Code Online (Sandbox Code Playgroud)
将 QEMU 命名空间添加到(根)域标记:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
Run Code Online (Sandbox Code Playgroud)
手动将现在缺少的接口配置添加为域标记内某处的 QEMU 参数(例如,作为 的最后一个子级<domain>
):
<qemu:commandline>
<qemu:arg value='-netdev'/>
<qemu:arg value='user,id=mynet.0,net=10.0.10.0/24,hostfwd=tcp::22222-:22'/>
<qemu:arg value='-device'/>
<qemu:arg value='rtl8139,netdev=mynet.0'/>
</qemu:commandline>
Run Code Online (Sandbox Code Playgroud)
保存配置并启动/重新启动虚拟机。
ssh 离开:
ssh myusername@localhost -p 22222
Run Code Online (Sandbox Code Playgroud)
我的理解恰恰相反。如果 libvirt VM 的网络设备配置为连接到virbr0
,您应该能够从主机访问它。
libvirt 称之为“桥接”网络。网络设备的另一个选项(此选项不起作用)称为“用户”网络。如果这不是您的问题,您将必须提供更多信息。
更多详细信息请参见:http://xkahn.zoned.net/blog/2013/11/26/networking-and-gnome-boxes
Arch Linux wiki建议虚拟交换机^Wbridgevibr0
是 libvirt 守护进程默认配置的一部分,因此您只需确保 VM 配置为使用它即可。他们还链接到详细指南。对于,请参阅“基于 NAT 的网络”virbr0
部分
归档时间: |
|
查看次数: |
23939 次 |
最近记录: |