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の初回起動時にはサインインを求められます。

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

VNC接続
VNCビューアを使用し、Azure RHEL VMのVNC Serverへ接続する手順を以下で説明します。
※VNC接続は既定では通信の暗号化がされません。VNC接続を暗号化し、よりセキュアな通信を行う場合は、後述の「SSHトンネルを介したVNC接続」の手順を参照します。
1. VNC Viewerを起動し、接続先情報「<VNC ServerのIPアドレス>:<ディスプレイ番号>」を入力し、[Enter]キーを押下する。
(補足)以下の画像ではVNC Server10.0.0.6、ディスプレイ番号1を指定しています。

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

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

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

SSHトンネルを介したVNC接続
通信を暗号化した状態でAzure RHEL VMのVNC Serverへ接続する手順を以下で説明します。
1. Tera Termを起動し、VNC Serverへログインする。
2. Tera Termで「設定」-「SSH転送」をクリックする。

3. SSHポート転送画面で[追加]をクリックし、以下の情報を入力する。
(補足)以下画像はディスプレイ番号が1のときの画面例です。
- ローカルのポート:55901
- ディスプレイ番号が2のときは55902を指定する
- リッスン:空欄
- リモート側ホスト:127.0.0.1
- ポート:5901
- ディスプレイ番号が2のときは5902を指定する


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

5. VNC Viewerを起動し、接続先情報「127.0.0.1:<ローカルのポート>」を入力し、[Enter]キーを押下する。
(補足)手順3.でローカルのポート55901を指定した場合は以下の画面となります。

6. 以降の手順は「VNC接続」と同様である。警告画面の内容を確認し、[Continue]をクリックする。
(補足)警告画面が表示されますが、本手順の通信はSSHを介しているため実際の通信は暗号化されています。

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

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

参考URL
- VNC Serverに関するRed Hatのドキュメント
- XRDPの利用方法
- Azure RHEL VMでGUIを利用する方法として、X Remote Desktop Protocol(XRDP)を利用する方法があります。
- 手順について、他の方の記事で紹介しています。
おわりに
Azure上にデプロイしたRHEL VMでGUIを使うための手順を説明しました。
Azure RHEL VMでGUI画面の利用を始める方にも、すでに利用を開始されている方にも、本記事が少しでもお役にたてれば幸いです。
山﨑 優美(日本ビジネスシステムズ株式会社)
ハイブリッドクラウド本部に所属。Windows Server・Linux、どちらのOSでもさわれるインフラエンジニアです。3児のママも兼務しています。
担当記事一覧