ハイパーバイザーホストへのビューア接続が拒否されました。

ハイパーバイザーホストへのビューア接続が拒否されました。

仮想マシンのデスクトップを表示するには、virt-managerに組み込まれているVNC-Viewerを使用します。ただし、仮想マシンウィンドウで再生ボタンをクリックして名前付き仮想マシンのデスクトップを表示すると、次server1.example.comのエラーメッセージが表示されます。

Error : Viewer Connection to hypervisor host got refused
or disconnected!

以下は私の設定です/etc/libvirt/qemu/server1.example.com

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made      
using: virsh edit server1.example.com or other application using the 
libvirt API.
-->

<domain type='kvm'>
<name>server1.example.com</name>
<uuid>ca13796e-5917-bff4-b4ca-1203f660cbb2</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.4.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source file='/var/lib/libvirt/images/server1.example.com.img'/>
  <target dev='hda' bus='ide'/>
  <address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='block' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <target dev='hdc' bus='ide'/>
  <readonly/>
  <address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<controller type='usb' index='0'>
</controller>
<controller type='ide' index='0'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x01'     
function='0x1'/>
</controller>
<interface type='network'>
  <mac address='52:54:00:e1:ba:1e'/>
  <source network='default'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03'    
  function='0x0'/>
</interface>
<serial type='pty'>
  <target port='0'/>
</serial>
<console type='pty'>
  <target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no' listen='127.0.0.1'>
  <listen type='address' address='127.0.0.1'/>
</graphics>

私はiptablesルールについて悪い感じを受けたので、/etc/sysconfig/iptablesファイルを追加することにしました。下記をご覧ください。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
#-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j  ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5903 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5904 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 5903 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 5904 -j ACCEPT
-A FORWARD -m state --state NEW -i wlan0 -o vibr0 -j ACCEPT
-A FORWARD -m state --state NEW -i vibr0 -o wlan0 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

私のシステムの仮想化パッケージは次のとおりです。

libvirt.x86_64           0.10.2-18.el6                     @localrepo
libvirt-client.x86_64    0.10.2-18.el6                     @localrepo
libvirt-python.x86_64    0.10.2-18.el6                     @localrepo
python-virtinst.noarch   0.600.0-15.el6                    @localrepo
virt-manager.x86_64      0.9.0-18.el6                      @localrepo
virt-what.x86_64         1.11-1.2.el6                      @base/6 

Tiger-VNCを使って仮想マシンのデスクトップを見ましたが、うまくいきました。
誰でもこの問題を解決する方法を提案できますか?

編集後に追加されたセクション:驚くべきことに、virt-viewerコマンドは正常に機能し、リモートデスクトップビューア(vinagre)もその操作を実行します。

[ssam@centos ~]$ virt-viewer --debug -c qemu:///system 2
** (virt-viewer:7930): DEBUG: Insert window 0 0x1a25890
** (virt-viewer:7930): DEBUG: fullscreen display 0: 0
** (virt-viewer:7930): DEBUG: fullscreen display 0: 0
** (virt-viewer:7930): DEBUG: Opening connection to libvirt with URI 
   qemu:///system
** (virt-viewer:7930): DEBUG: Add handle 7 1 0x1a8d5c0
** (virt-viewer:7930): DEBUG: notebook show status 0x1a24190
** (virt-viewer:7930): DEBUG: notebook show status 0x1a24190
** (virt-viewer:7930): DEBUG: Guest 2 is running, determining display
** (virt-viewer:7930): DEBUG: Set connect info: (null),(null),(null),-1,
   (null),(null),(null),0
** (virt-viewer:7930): DEBUG: Guest 2 has a vnc display
** (virt-viewer:7930): DEBUG: Guest graphics address is 127.0.0.1:5901
** (virt-viewer:7930): DEBUG: Set connect info: localhost,127.0.0.1,5901,-1,
   (null),(null),(null),0
** (virt-viewer:7930): DEBUG: Error operation virDomainOpenGraphics 
    forbidden for read only access
** (virt-viewer:7930): DEBUG: After open connection callback fd=-1
** (virt-viewer:7930): DEBUG: Opening direct TCP connection to display at 
   127.0.0.1:5901:-1
** (virt-viewer:7930): DEBUG: notebook show status 0x1a24190
** (virt-viewer:7930): DEBUG: Add timeout 0x1a9abf0 -1 0x3ee80aa2b0 
   0x1a8d900 1
** (virt-viewer:7930): DEBUG: notebook show status 0x1a24190
** (virt-viewer:7930): DEBUG: notebook show display 0x1a24190
** (virt-viewer:7930): DEBUG: Display size request 100x100 (desktop 100x100)
** (virt-viewer:7930): DEBUG: Allocated 400x375
** (virt-viewer:7930): DEBUG: Child allocate 375x375
** (virt-viewer:7930): DEBUG: desktop resize 1024x768
** (virt-viewer:7930): DEBUG: Preparing main window resize
** (virt-viewer:7930): DEBUG: Decided todo 1024x768 (desktop is 1024x768,
   fullscreen is 1280x800
** (virt-viewer:7930): DEBUG: Display size request 1024x768 (desktop 
   1024x768)
** (virt-viewer:7930): DEBUG: Allocated 1024x768
** (virt-viewer:7930): DEBUG: Child allocate 1024x768
** (virt-viewer:7930): DEBUG: Display size request 50x50 (desktop 1024x768)
** (virt-viewer:7930): DEBUG: Allocated 1024x768
** (virt-viewer:7930): DEBUG: Child allocate 1024x768
** (virt-viewer:7930): DEBUG: Dispatch handler 7 1 0x1a8d5c0
** (virt-viewer:7930): DEBUG: Dispatch handler 7 2 0x1a8d5c0
** (virt-viewer:7930): DEBUG: Dispatch handler 7 1 0x1a8d5c0

答え1

私のCentosシステムから127.0.0.1ファイルのエントリを復元することで問題が解決しました。このソリューションは他の場所にあることがわかりました。私はこれらすべてをあなたと共有したいと思います。/etc/hostslocalhost

答え2

答え3

マシンのドメイン名とホスト名の後にlocalhostファイルを追加します。例えば/etc/hosts

127.0.0.1 server1.example.com server1 localhost 

私のために働いてください! ! ! !私はそれがすべてに効果があることを願っています!

答え4

その理由は、Linux iptablesが着信接続をブロックするためです。したがって、kvmゲストコンソールに接続できません。

したがって、問題をよりよく理解するには、まずiptablesルールを更新し、コンソールが接続されている場合は同じことを試してください。問題はファイアウォールにあります。

iptable リフレッシュ:

iptables -F

ルールを見る:

iptables -L

問題を解決するには、iptables INPUTルールの拒否を無効にする必要があります。

関連情報