Azure Red Hat Enterprise Linux 仮想マシンにおけるVNC導入

Azure上にデプロイしたAzure Red Hat Enterprise Linux(RHEL)VMは、デプロイ直後はTera Termなどのターミナルソフトで接続をし、コマンドラインで操作をします。

そのままCUIで利用する事も多いと思いますが、実はデプロイ後にGUI環境をインストール・設定することで、Azure RHEL VMでGUIを使うことも可能です。

本記事ではAzure RHEL VMでGUI画面を使うための手順を説明します。なお本記事はRHEL9のVMを使用して手順を確認しました。

はじめに

AzureのVMにはコンソール機能が用意されていません。そのためOSにGUI環境を導入しただけでは、デスクトップ画面へ接続することができません。

本記事ではVirtual Network Computing(VNC)というツールを利用してAzure RHEL VMのデスクトップ画面へネットワーク経由で接続します。

VNCは、ネットワーク経由で他のサーバのデスクトップ画面を操作するツールです。Windows、Mac、Linuxなど様々なOSで利用することが可能です。また通信を暗号化する機能も備わっています。

今回は、Azure RHEL VMに「VNC Server」、クライアント側に「VNCビューア」を導入することで、クライアント端末からAzure RHEL VMのGUI画面に接続します。

前提条件

本記事で実施するコマンド操作のうち、行頭に「#」があるコマンドはすべてroot権限で実行します。はじめに以下のコマンドを実行し、rootへスイッチしてからコマンド操作を実施してください。

# sudo su -

その他のコマンド操作(行頭に「$」があるコマンド)は、指定されたユーザー権限で実行します。

VNC Serverの導入

以降の操作は、Azure RHEL VMで実施します。

GUI環境とVNC Serverのインストール

GUI環境とVNC Serverのパッケージをインストールする手順を以下で説明します。

1. 以下のコマンドを実行し、GUI環境に必要なrpmパッケージ群をインストールする。

# dnf groupinstall "Server with GUI"
<実行結果>
(インストールされるパッケージ情報が表示される)
これでよろしいですか? [y/N]: y   ←★インストールされるパッケージを確認後に[y]を入力して処理を続行
(中略)
Complete!

2. 以下のコマンドを実行し、VNC Serverのrpmパッケージをインストールする。

# dnf install tigervnc-server
<実行結果>
(インストールされるパッケージ情報が表示される)
これでよろしいですか? [y/N]: y   ←★インストールされるパッケージを確認後に[y]を入力して処理を続行
(中略)
Complete!

VNC Serverの設定

VNC Serverインストール後の設定手順を以下で説明します。

なおVNC Serverのセッションをもう1つ作成する場合、本手順のディスプレイ番号を2に読み替えて再度実施してください。

1. 以下のコマンドを実行し、VNC Server起動用のファイルを配置する。

(補足)起動用ファイル名は「vncserver@:<ディスプレイ番号>.service」となります。以下のコマンドではディスプレイ番号が1となります。

# cp -p /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
<実行結果>
出力なし

2. 以下のコマンドを実行し、VNC Serverを起動するユーザーをマッピングする。

(補足)追加するパラメータは「:<ディスプレイ番号>=<ユーザー名>」となります。以下のコマンドではディスプレイ番号1にユーザーazureuserをマッピングします。

# vi /etc/tigervnc/vncserver.users
<末尾に以下を記載する>
:1=azureuser

3. 以下のコマンドを実行し、VNC Serverの自動起動設定を実施する。

# systemctl enable vncserver@:1.service
<実行結果>
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@:1.service → /etc/systemd/system/vncserver@:1.service.

4. 次の操作は手順2.で指定したVNC Serverを起動するユーザーで実施する。本記事ではユーザーazureuserで操作を実施する。

(補足)以下のコマンドを実行し、VNC Server接続用のパスワードを設定します。閲覧専用パスワードは使用しないため、パスワード入力後の設問ではnを入力します。

$ vncpasswd   ←★azureuserで実行する
<実行結果>
Password:   ←★パスワードを入力し[Enter]キーを押下する
Verify:   ←★もう一度パスワードを入力し[Enter]キーを押下する
Would you like to enter a view-only password (y/n)? n   ←★[n]を入力して処理を続行
A view-only password is not used

5. 次の操作は手順2.で指定したVNC Serverを起動するユーザーで実施する。本記事ではユーザーazureuserで操作を実施する。

(補足)以下のコマンドを実行し、VNC Serverを初回起動します。このときVNC Server起動用のファイルが自動作成されます。

$ vncserver   ←★azureuserで実行する
<実行結果>
(中略)
Creating default startup script /home/azureuser/.vnc/xstartup
Creating default config /home/azureuser/.vnc/config
Starting applications specified in /home/azureuser/.vnc/xstartup
Log file is /home/azureuser/.vnc/<ホスト名>:1.log

Firewalldの設定(Firewalldが有効の場合のみ)

Firewalldが有効化されている場合は、FirewalldでVNC Server用の通信を許可する必要があります。Firewalldが有効化されている場合のみ、以下の手順を実施します。

1. 以下のコマンドを実行し、VNC Serverで使用するTCPポート5900から5903をFirewalldで許可する。

# firewall-cmd --add-service=vnc-server --permanent
<実行結果>
success

2. 以下のコマンドを実行し、Firewalldルールの再読み込みを行う。

# firewall-cmd --reload
<実行結果>
success

設定後の再起動

サーバーを再起動し、VNC Serverが自動で起動することを確認します。

1. Azureポータルから再起動をするか、以下のコマンドを実行する。

# systemctl reboot

2. 以下のコマンドを実行し、VNC Serverの状態を確認する。「Active: active (running)」「vncserver@:1.service; enabled」「vncsession azureuser :1」と表示されることを確認する。

# systemctl status vncserver@\:1
<実行結果>
● vncserver@:1.service - Remote desktop service (VNC)
     Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; preset: disabled)   ←★自動起動が有効化されている
     Active: active (running) since Mon 2025-05-12 13:00:59 JST; 1h 27min ago   ←★サービスが起動している
   Main PID: 1674 (vncsession)
      Tasks: 0 (limit: 22821)
     Memory: 2.0M
        CPU: 40ms
     CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
             ? 1674 /usr/sbin/vncsession azureuser :1   ←★ユーザーazureuserで起動している

VNCビューアの導入と接続

以降の操作は、クライアント側で実施します。本記事ではWindows11を使用します。

VNCビューアのインストール

Windows端末にVNCビューアをインストールします。

本記事ではRealVNCを利用します。公式サイトからRealVNC Viewerをダウンロードし、Windows端末にインストールします。

Download VNC Viewer by RealVNC®

なお、VNC Viewerの初回起動時にはサインインを求められます。

初回起動画面1

通常の利用時はサインインの必要はないため、キャンセルしてサインイン画面を閉じます。

初回起動画面2

VNC接続

VNCビューアを使用し、Azure RHEL VMのVNC Serverへ接続する手順を以下で説明します。

※VNC接続は既定では通信の暗号化がされません。VNC接続を暗号化し、よりセキュアな通信を行う場合は、後述の「SSHトンネルを介したVNC接続」の手順を参照します。

1. VNC Viewerを起動し、接続先情報「<VNC ServerのIPアドレス>:<ディスプレイ番号>」を入力し、[Enter]キーを押下する。

(補足)以下の画像ではVNC Server10.0.0.6、ディスプレイ番号1を指定しています。

接続画面1

2. 接続が暗号化されないため警告画面が表示される。内容を確認し、[Continue]をクリックする。

接続画面2

3. 「VNC Serverのインストールと設定」の手順5.で指定したパスワードを入力し、[OK]をクリックする。

接続画面3

4. VNC Serverのデスクトップ画面が表示されることを確認する。

接続画面4

SSHトンネルを介したVNC接続

通信を暗号化した状態でAzure RHEL VMのVNC Serverへ接続する手順を以下で説明します。

1. Tera Termを起動し、VNC Serverへログインする。

2. Tera Termで「設定」-「SSH転送」をクリックする。

Tere Term接続画面1

3. SSHポート転送画面で[追加]をクリックし、以下の情報を入力する。

(補足)以下画像はディスプレイ番号が1のときの画面例です。

  • ローカルのポート:55901
    • ディスプレイ番号が2のときは55902を指定する
  • リッスン:空欄
  • リモート側ホスト:127.0.0.1
  • ポート:5901
    • ディスプレイ番号が2のときは5902を指定する

Tera Term接続画面2

Tera Term接続画面3

4. SSHポート転送の情報が表示されることを確認し、[OK]をクリックする。

Tera Term接続画面4

5. VNC Viewerを起動し、接続先情報「127.0.0.1:<ローカルのポート>」を入力し、[Enter]キーを押下する。

(補足)手順3.でローカルのポート55901を指定した場合は以下の画面となります。

SSL接続画面1

6. 以降の手順は「VNC接続」と同様である。警告画面の内容を確認し、[Continue]をクリックする。

(補足)警告画面が表示されますが、本手順の通信はSSHを介しているため実際の通信は暗号化されています。

SSL接続画面2

7. 「VNC Serverのインストールと設定」の手順5.で指定したパスワードを入力し、[OK]をクリックする。

SSL接続画面3

8. VNC Serverのデスクトップ画面が表示されることを確認する。

SSL接続画面4

参考URL

おわりに

Azure上にデプロイしたRHEL VMでGUIを使うための手順を説明しました。

Azure RHEL VMでGUI画面の利用を始める方にも、すでに利用を開始されている方にも、本記事が少しでもお役にたてれば幸いです。

執筆担当者プロフィール
山﨑 優美

山﨑 優美(日本ビジネスシステムズ株式会社)

ハイブリッドクラウド本部に所属。Windows Server・Linux、どちらのOSでもさわれるインフラエンジニアです。3児のママも兼務しています。

担当記事一覧