QEMU/KVM ドメインで実行されているサーバーがあります。リモート マシンから でlibvirtd
アクセスしたいので、SSH トンネルを開いて TCP ポートを転送します (はローカル TCP ポートでリッスンしています)。すると、virt-manager は でローカル ソケットに接続できます。virt-manager
libvirtd
virt-manager -c qemu+tcp://host:port/system
残念ながら、virt-manager
は Spice/VNC セッションをトンネリングするために独自の接続を使用せず、各ゲストに対して QEMU によって開かれたソケットに独立して新しい接続を開こうとします。これは にバインドされているため、うまくいきません。 を使用してポート番号を取得し、SSH 経由でもトンネリングし、構文で直接ビューアを使用してセッションを手動で開くことがlocalhost
できます。virsh domdisplay
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>
上院: 他にもいろいろ試しました。x11spice
ホストで起動して、それに接続してみました。また、Windows バージョンの から接続してみましたremote-viewer
。結果: Linux バージョンでは、VM ゲストに接続したときと同じ「不完全なリンク ヘッダー」エラーが発生しました。Windows バージョンでも同様のエラーが発生しましたが、括弧内の数字が異なります。
そこで疑問に思うのですが、クライアントとサーバーのビルドが異なる場合でも SPICE は接続できるのでしょうか? 何か既知の問題があるのでしょうか?