배경 정보
호스트에서
두 개의 고정 IP가 구성된 가상 브리지 설정이 있습니다: 10.0.3.1/16
및 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에 전달하면 이 문제를 해결할 수 있습니다. 별로 친절하지는 않지만 뭔가 효과가 있기를 원한다면 이 옵션을 선택하세요