libvirtでSPICEを使用して同じポートと別のアドレスをリッスンする方法は?

libvirtでSPICEを使用して同じポートと別のアドレスをリッスンする方法は?

背景情報

ホストから

10.0.3.1/162つの静的IPを持つ仮想ブリッジ設定があります10.0.3.2/16

ホストマシンはUbuntu 18.04 LTSで、この記事を書く時点の最新バージョンです。

仮想マシンの場合

仮想マシン1受信10.0.3.1ポートに設定します5900。これにより、sudo virsh start vm1正しく起動して接続できます。

libvirtの構成は次のとおりです。

    <graphics type='spice' port='5900' autoport='no' listen='10.0.3.1'>
      <listen type='address' address='10.0.3.1'/>
      <image compression='auto_lz'/>
    </graphics>

仮想マシン210.0.3.2受信ポートに設定5900

    <graphics type='spice' port='5900' autoport='no' listen='10.0.3.2'>
      <listen type='address' address='10.0.3.2'/>
      <image compression='auto_lz'/>
    </graphics>

sudo virsh start vm2エラーが発生した場合:

error: Failed to start domain vm2
error: internal error: Failed to reserve port 5900

sudo netstat -nltp以下を表示します。

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 10.0.3.1:5900           0.0.0.0:*               LISTEN      32092/qemu-system-x

私は何が必要ですか?

各仮想マシンに異なるIPを使用し、同じ5900ポートを使用したいが、ポートがバインドされているというエラーが発生します(ただし、別のアドレスにあります)。

同じポートを使用するが異なるアドレスを使用するにはどうすればよいですか?

ベストアンサー1

libvirtのバグのようです。0.0.0.0受信アドレスに関係なく、ポート競合チェックを使用します。

-spiceqemuコマンドラインパスを使用してlibvirtが表示できない有効な引数をqemuに渡すと、この問題を解決できます。あまり親切ではありませんが、何か効果がある場合は、このオプションを選択してください

おすすめ記事