我有一台运行 QEMU/KVM 域的服务器libvirtd
。我想virt-manager
从远程计算机访问它,为此我打开 SSH 隧道并转发 TCP 端口(libvirtd
正在监听本地 TCP 端口)。然后,virt-manager 能够使用 连接到本地套接字virt-manager -c qemu+tcp://host:port/system
。
不幸的是,virt-manager
它没有使用自己的连接通过 Spice/VNC 会话进行隧道传输,而是尝试独立打开新连接,连接到 QEMU 为每个客户机打开的套接字;它注定要这样做,所以localhost
没有运气。我能够使用 获取端口号virsh domdisplay
,也通过 SSH 进行隧道传输,并在语法中直接使用查看器remote-viewer spice://host:port
手动打开会话。
它连接然后失败:
(remote-viewer:16039): GSpice-WARNING **: 02:25:56.856: incomplete link header (-104/16)
这个错误可能意味着什么?我在这里做错了什么?
如何通过 SSH 隧道正确连接到远程 QEMU Spice 会话?
在谷歌搜索错误时,我发现这可能与连接上的 TLS 端口有关,无论这具体意味着什么。为了缓解这种情况,我将其添加defaultMode="insecure"
到<graphics/>
域配置的元素中,但这又改变了另一个。示例 QEMU 域 XML:
<graphics type="spice" port="5995" autoport="no" listen="127.0.0.1" defaultMode="insecure">
<listen type="address" />
</graphics>
更新型多巴胺:我尝试了其他几种方法:x11spice
在主机上启动并尝试连接到主机;还尝试从 Windows 版本进行连接remote-viewer
。结果:Linux 版本出现与连接到 VM 客户机时相同的“不完整链接头”错误;Windows 版本出现类似错误,但括号中的数字不同。
这让我很疑惑。当客户端和服务器版本不同时,SPICE 能否连接?可能存在任何已知问题?