libvirtd
我有一台運行QEMU/KVM 域的伺服器。我想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 會話?
在Google搜尋錯誤時,我發現提示這可能與連接上的 TLS 連接埠有關,無論這具體意味著什麼。為了緩解這種情況,我添加了網域配置的元素,但這又改變了defaultMode="insecure"
。<graphics/>
QEMU 域 XML 範例:
<graphics type="spice" port="5995" autoport="no" listen="127.0.0.1" defaultMode="insecure">
<listen type="address" />
</graphics>
UPD:我嘗試了其他幾件事:x11spice
在主機上啟動並嘗試連接到該主機;也嘗試從 Windows 版本進行連線remote-viewer
。結果:Linux 版本出現與連接 VM guest 時相同的「不完整的連結頭」錯誤; Windows版本也有類似的錯誤,但括號中的數字不同。
這讓我想知道。當客戶端和伺服器具有不同版本時,SPICE 是否能夠連線?可能有任何已知的問題嗎?