KVM 게스트가 바인딩된 VNC 화면(예: 포트 번호 - 5900)을 찾는 간단한 방법이 있습니까?
내 게스트는 모두 VNC가 활성화된 상태에서 실행되도록 구성되어 있지만 포트를 차지하는 순서는 무작위입니다.
또는 각 게스트가 미리 정의된 포트를 차지하도록 구성(게스트 또는 호스트)에서 할당하는 방법이 있습니까?!
답변1
를 사용하고 있으니 libvirt
물어보시면 됩니다!
root@onhost1:~# virsh list
Id Name State
----------------------------------
1 one-34 running
2 one-36 running
3 one-38 running
root@onhost1:~# virsh vncdisplay one-34
:34
root@onhost1:~# virsh vncdisplay 1
:34
(VNC 디스플레이 포트와 이름의 특별한 상관 관계는 Open Nebula를 사용하기 때문입니다)
편집: 요즘에는 domdisplay를 사용하여 VNC인지 Spice인지에 관계없이 디스플레이의 URI를 얻을 수 있습니다.
○ → virsh domdisplay win-michael
vnc://127.0.0.1:0
○ → for dom in $(virsh list --name); do echo -n "$dom: "; virsh domdisplay $dom; done
win-michael-m: vnc://127.0.0.1:0
실행 중인 모든 게스트에 대해 이를 한 번에 실행하는 한 줄의 코드는 다음과 같습니다.
for i in $(virsh -q list|awk '{print $2}'|sort); do
echo -e "\033[01;31m$i\033[00m -> $(virsh vncdisplay $i)"
done
또한 포트 번호별로 출력을 정렬하는 함수로 만들었습니다.
function vnc-list
{
for i in $(virsh -q list|awk '{print $2}'|sort); do
PORTNUM=$(virsh vncdisplay $i|cut -f 2 -d ':')
printf "% 2d: \033[01;32m%.20s\033[00m\n" "$PORTNUM" "$i";
done | sort -n
}
답변2
나는 다음을 실행할 것이다:
ps aux | grep "VM name/config"
프로세스 ID를 기록한 다음
netstat -apn | grep "process ID"
그러면 해당 프로세스에 의해 포트가 열려 있음이 표시됩니다.
답변3
디스플레이를 설정하려면 -vnc <ip:display>
qemu-kvm에 옵션을 명시적으로 제공하면 됩니다. 참조qemu-kvm에 대한 매뉴얼 페이지, 특히 -vnc
자세한 내용은 매개변수 섹션을 참조하세요.