Linux で vncserver コマンドで VNC を利用しようとした際、他に vncserver で利用していないにもかかわらず、5901 番から番号が振られた場合、5900 番ポートを qemu-kvm で利用していることがあります。
# ポート 5900 を利用しているプロセスを調べる lsof -i:5900 # 結果 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME qemu-kvm XXXXX qemu 14u IPv4 XXXXXX 0t0 TCP localhost:rfb (LISTEN)
このままでも [ホスト名(IPアドレス):5901] 等で接続可能ですが、ホストマシンの VNC を頻繁に利用する場合は結構面倒くさいです。そこで、 Qemu-KVM で VNC 用に利用するポートを指定する方法について紹介します。
KVM で仮想マシンのディスプレイに VNC を利用する場合、デフォルトでは 5900 番から順番に用のデフォルトポートは 5900 ですが、/etc/libvirt/qemu.conf ファイルの下記のエントリで利用する VNC ポートの最小値、最大値を指定可能です。
なお、仮想マシンのディスプレイに SPICE を利用している場合もこちらの設定が有効となります。
KVM で利用するディスプレイポートの最小値および最大値を指定する
/etc/libvirt/qemu.conf # ポート 5910 番から利用する remote_display_port_min = 5910 # ポート 5920 番までを利用する remote_display_port_max = 5920
なお、設定を変更した場合は Linux を再起動しましょう。
VNCSERVER で利用するポートを変更する
デフォルトでは vncserver コマンドで VNC サーバを起動した場合、5900+ディスプレイ番号がポートとして利用されます。利用するポートは vncserver コマンド(実態は Perl スクリプト)の設定を変更することで、ポートも変えることができます。
例えば 5900 番から利用したい場合下記のように変更可能です。
sudo emacs /usr/bin/vncserver $vncPort = 5900 + $displayNumber; #以下に変更 #$vncPort = 5900 + $displayNumber; $vncPort = 5900 + $displayNumber - 1;