나는 virt-install
방문자를 생성하기 위해 (아래 참조)를 사용하고 있습니다. SPICE TLS 포트의 자동 할당에 대해 불평하기 전까지는 모든 것이 괜찮아 보입니다.
내가 실행 중인 내용과 전체 출력은 다음과 같습니다.
# sudo virt-install --name vmname --ram 1024 --os-type=linux --os-variant=ubuntutrusty --disk path=/data/vm/vmname_sda.qcow2,bus=virtio,size=10,sparse=false --noautoconsole --console pty,target_type=virtio --accelerate --hvm --network=network:default --graphics spice,port=20001,listen=127.0.0.1
Starting install...
Retrieving file MANIFEST... | 2.1 kB 00:00 ...
Retrieving file MANIFEST... | 2.1 kB 00:00 ...
Retrieving file linux... | 11 MB 00:00 ...
Retrieving file initrd.gz... | 41 MB 00:00 ...
ERROR unsupported configuration: Auto allocation of spice TLS port requested but spice TLS is disabled in qemu.conf
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start vmname
otherwise, please restart your installation.
오류는 다음과 같습니다
오류 지원되지 않는 구성: 자동 SPICE TLS 포트 할당이 요청되었지만 qemu.conf에서 SPICE TLS가 비활성화되었습니다.
실제로 /etc/libvirt/qemu.conf
나는 다음을 가지고 있습니다:
spice_tls = 0
(그리고 의도적으로).
그러면 SPICE 그래픽 프로토콜을 사용하여 KVM 게스트를 어떻게 생성합니까?하지만 TLS는 비활성화되어 있습니다?
관련이 있는지 의심스럽지만 TLS를 비활성화하려는 이유는 이미 SSH를 통해 SPICE로 터널링하고 있기 때문입니다. 추가 암호화 계층이 필요하지 않습니다.
호스트 시스템은 Ubuntu 14.04.1입니다. 패키지 버전은 다음과 같습니다:
- 가상 머신: 0.600.4-3ubuntu2
- qemu-kvm:2.0.0+dfsg-2ubuntu1.2
(현재는 모두 최신입니다 apt-get
.)
답변1
글쎄요, 이 문제는 제가 직접 해결했습니다. 옵션 중:
--graphics spice,port=20001,listen=127.0.0.1
port
다음과 같이 매개변수를 제거 합니다.
--graphics spice,listen=127.0.0.1
구성해야합니다<graphics />
강요libvirt
그런 다음 XML 구성 파일 에서 . 내 전화는 virt-install
나에게 다음을 제공합니다.
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
주의할 점이 하나 있습니다.SPICE가 기본 자동 연결 포트(제 경우에는 5900)에 연결되어 있는 동안 설치를 완료했습니다. 설치를 완료하기 전에 게스트를 종료하면 전체 시작 프로세스가 virt-install
중단됩니다.
이를 변경하려면 게스트를 닫고 다음을 사용하여 XML을 다음과 같이 편집해야 합니다 virsh edit vmname
(여기서는 vmname
귀하의 이름으로 바꿔야 함).
<graphics type='spice' autoport='no' port='20001' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
"사용 중인 포트" 충돌에 대한 가능한 해결책. 127.0.0.0/24에서 127.0.0.1 이외의 로컬 네트워크 주소(예: 127.0.0.2 등)를 사용하여 청취하세요.
노트:누구든지 더 나은(즉, 실용적인) 솔루션을 제안할 수 있다면 다른 답변을 받아들이겠습니다. 이 게시물은 주로 동일한 문제가 발생할 수 있는 다른 사람들을 위한 것입니다.
답변2
편의 매개변수가 virt-install
실패하면 다음을 사용하여 수동으로 xml을 만들 수 있습니다.X 경로통사론.
--graphics "spice,port=20001,defaultMode=insecure,autoport=no"
나에게는 쌍을 다음 5개 매개변수로 바꾸는 것이 성공적인 솔루션이었습니다.
--xml 'xpath.delete=./devices/graphics' \
--xml './devices/graphics/@defaultMode=insecure' \
--xml './devices/graphics/@autoport=no' \
--xml './devices/graphics/@type=spice' \
--xml "./devices/graphics/@port=20001"
생성된 xml에 대해 궁금한 사람은 이 --print-xml
옵션을 추가할 수 있습니다.
답변3
해결책은 kvm/virt에 기본적으로 안전하지 않은 연결을 사용하도록 지시하는 것입니다.
<graphics type='spice' autoport='yes' listen='0.0.0.0' defaultMode='insecure'>
<listen type='address' address='0.0.0.0'/>
</graphics>
defaultMode
로 설정 하면 insecure
짝수를 사용할 수 autoport='yes'
있으며 모든 것이 정상입니다.
한 가지 팁은 사용해야 하는 포트를 검색할 때 다음과 같습니다 domdisplay
.
[root@kvm repo]# virsh domdisplay --domain openshift1
spice://localhost:5900
이것이 버그인지 올바른 동작인지는 모르겠지만 virsh domdisplay --domain openshift1
표시된 출력 localhost
은 입니다 0.0.0.0
. 그러나 server-ip/dns를 사용하여 외부에서 게스트 VM에 연결할 수 있습니다. 방화벽이 이러한 포트에 연결할 수 있는지 확인하고 kvm/virt도 0.0.0.0
위에 표시된 대로 수신 대기하는지 확인하세요.
답변4
위의 사용자 "sampi"의 답변은 제대로 작동했지만 원격으로 연결하려면 다음 줄을 추가해야 했습니다.
--xml './devices/graphics/@listen=0.0.0.0' \
그래서 그것은된다
--xml 'xpath.delete=./devices/graphics' \
--xml './devices/graphics/@defaultMode=insecure' \
--xml './devices/graphics/@listen=0.0.0.0' \
--xml './devices/graphics/@autoport=no' \
--xml './devices/graphics/@type=spice' \
--xml "./devices/graphics/@port=20001"
완벽하게 작동했으므로 이제 Linux를 사용하여 가상 머신을 만들고 원격 뷰어를 사용하여 Windows에서 매우 쉽게 연결할 수 있습니다. @sampi에게 감사드립니다 :)