目的
環境
ゲストマシン | OS |
---|---|
guest01 | (ANY) |
ホストマシン | OS |
---|---|
kvm01 | CentOS8 |
手順
定義ファイルをバックアップする。
[root@kvm01 ~]# cp -p /etc/libvirt/qemu/guest01.xml{,_$(date +%Y%m%d)} [root@kvm01 ~]# ls -l /etc/libvirt/qemu/guest01.xml* -rw-------. 1 root root 3679 3月 25 23:44 /etc/libvirt/qemu/guest01.xml -rw-------. 1 root root 3679 3月 25 23:44 /etc/libvirt/qemu/guest01.xml_20200325
定義ファイルを編集する。
[root@kvm01 ~]# virsh edit guest01
以下を然るべき場所に挿入する。
- ポート番号を固定する場合
<graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics>
- ポート番号を自動割り当てする場合(5900~)
<graphics type='vnc' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics>
文法は全く調べていない。おそらくdevicesディレクティブ内であればどこでも良さそう。
今回はvideoディレクティブの上に挿入した。
<domain type='kvm'> ・・・ <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </memballoon> </devices> </domain>
保存して閉じる。
ドメイン guest01 XML の設定は編集されました
この時点ではまだLISTENしていない。
[root@kvm01 ~]# netstat -ant | grep 590
ゲストマシンを起動する。
※起動していた場合、停止してから起動する。
[root@kvm01 ~]# virsh start guest01 ドメイン guest01 が起動されました
ここでLISTENし始める。
[root@kvm01 ~]# netstat -ant | grep 590 tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN
これでVNC接続できる・・・と思いきや、ホストマシンのファイアウォールを開け忘れていた。
[root@kvm01 ~]# firewall-cmd --list-services cockpit dhcpv6-client ssh
[root@kvm01 ~]# firewall-cmd --add-service=vnc-server success
[root@kvm01 ~]# firewall-cmd --add-service=vnc-server --permanent ※恒久的に開ける場合 success
[root@kvm01 ~]# firewall-cmd --list-services cockpit dhcpv6-client ssh vnc-server
これで今度こそOK。
補足
ちなみに、「vnc-server」というサービス名からでは、何のプロトコルの何番ポートが開いているか読み取れない。以下で確認できる。
[root@kvm01 ~]# cat /usr/lib/firewalld/services/vnc-server.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>Virtual Network Computing Server (VNC)</short> <description>A VNC server provides an external accessible X session. Enable this option if you plan to provide a VNC server with direct access. The access will be possible for displays :0 to :3. If you plan to provide access with SSH, do not open this option and use the via option of the VNC viewer.</description> <port protocol="tcp" port="5900-5903"/> </service>
vnc-serverはレンジで開いている珍しい例。
参考サイト
-