kvm 게스트용 VNC UI에 어떤 화면(및 포트)이 있는지 찾는 방법은 무엇입니까? 아니면 할당하는 방법

kvm 게스트용 VNC UI에 어떤 화면(및 포트)이 있는지 찾는 방법은 무엇입니까? 아니면 할당하는 방법

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자세한 내용은 매개변수 섹션을 참조하세요.

관련 정보