一部のVMをVNC表示タイプからSPICEに切り替えています。
VNCディスプレイタイプは非常に便利なto=
パラメータにより、QEMUは定義された範囲の最初の空きポートを自動的に使用できます。
-display vnc=127.0.0.1:0,to=100
ここで、QEMUは新しいVNCディスプレイサーバーごとに5900〜6000のポートを使用します。
SPICEディスプレイでそのような機能を実現するための最もクリーンな方法は何ですか(私はlibvirtを使用していません)?
現在、netstat
出力をgrepするテストのスクリプトを作成して、まだ使用されていないポートを見つけて、次の場所に渡します。
-spice addr=127.0.0.1,port=${unused_port}
競合状態については触れませんが、この方法はVNCの方法に比べてかなり醜いです。そして QEMUのマンページ はあまり網羅的ではないようです(VNC to=
パラメータは、たとえば言及されていないようです)、それでは、万が一SPICEに相当するパラメータがあるのだろうか?
(現在)QEMUにSPICEの次の空きポートを選択させることはできません。これは、実装の詳細が原因で発生します。QEMU sesspice_server_set_port これは単一の数値パラメーターのみを受け入れます。
今できる最善のことは、QEMUの外部のポート番号を選び、今と同じように割り当てることです。
これが扱いにくい場合は、DNSを使用して最初の空きIPアドレス+使用可能なポートにバインドすることを検討してください。 SPICEサーバーコード 成功するまですべてのアドレスを試行するため、マップするとlocal.test
から127.0.0.1、127.0.0.2、127.0.0.3などの場合、成功するまでこれらの各インターフェイスへのバインドを試みます。ひどいように聞こえますが、それは役に立つかもしれません。この方法は、ワイルドカードアドレスの同じポートでリッスンしている他のサービスがない場合にのみ可能であることに注意してください。