背景情報
ホストから
10.0.3.1/16
2つの静的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
受信アドレスに関係なく、ポート競合チェックを使用します。
-spice
qemuコマンドラインパスを使用してlibvirtが表示できない有効な引数をqemuに渡すと、この問題を解決できます。あまり親切ではありませんが、何か効果がある場合は、このオプションを選択してください