RHEL8にVNCサーバーをインストールする方法


VNC(Virtual Network Computing)は、グラフィカルデスクトップ共有用の人気のあるプラットフォームであり、インターネットなどのネットワークを介して他のコンピューターにリモートでアクセス、表示、および制御できます。

VNCはリモートフレームバッファープロトコル(RFB)を使用し、クライアントサーバーの原則に基づいて動作します。サーバーはその出力(vncserver)を共有し、クライアント(vncviewer)はサーバーに接続します。リモートコンピュータにはデスクトップ環境がインストールされている必要があることに注意してください。

この記事では、tigervnc-serverプログラムを使用して、RHEL 8Desktopエディションの最新リリースにVNCリモートアクセスをインストールして構成する方法について説明します。

  1. RHEL 8 with Minimal Installation
  2. RHEL 8 with RedHat Subscription Enabled
  3. RHEL 8 with Static IP Address

RHEL 8システムが上記の要件を満たしたら、VNCサーバーとしてセットアップする準備が整います。

ステップ1:Wayland DisplayManagerを無効にしてX.orgを有効にする

1. RHEL 8のデフォルトのデスクトップ環境(DE)はGNOMEであり、デフォルトでWaylandディスプレイマネージャーを使用するように構成されています。ただし、WaylandはX.orgのようなリモートレンダリングAPIではありません。したがって、X.orgディスプレイマネージャーを使用するようにシステムを構成する必要があります。

お気に入りのコマンドラインエディターを使用して、GNOMEディスプレイマネージャー(GDM)構成ファイルを開きます。

# vi /etc/gdm/custom.conf

次に、この行のコメントを解除して、ログイン画面でXorgを使用するように強制します。

WaylandEnable=false

ファイルを保存して閉じます。

ステップ2:RHEL8にVNCサーバーをインストールする

2. TigerVNC(Tiger Virtual Network Computing)はオープンソースであり、他のコンピューターをリモートで制御できるグラフィカルデスクトップ共有に広く使用されているシステムです。

# dnf install tigervnc-server tigervnc-server-module

3.次に、実行するユーザーに切り替えて、図のようにユーザーのVNCサーバーパスワード(6文字以上)を設定してVNCプログラムを使用します。

# su - tecmint
$ vncpasswd

次に、exitコマンドを実行してrootアカウントに切り替えます。

$ exit

ステップ3RHEL8でVNCサーバを設定する

4.このステップでは、システム上で上記のユーザーの表示を開始するようにTigerVNCサーバーを構成する必要があります。次のように、/ etc/systemd/system/[emailprotected]という名前の構成ファイルを作成することから始めます。

# vi /etc/systemd/system/[email protected]

その中に次の構成を追加します(tecmintを実際のユーザー名に置き換えることを忘れないでください)。

[Unit] 
Description=Remote desktop service (VNC) 
After=syslog.target network.target 

[Service] 
Type=forking 
WorkingDirectory=/home/tecmint 
User=tecmint 
Group=tecmint 

PIDFile=/home/tecmint/.vnc/%H%i.pid 

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' 
ExecStart=/usr/bin/vncserver -autokill %i 
ExecStop=/usr/bin/vncserver -kill %i 

[Install] 
WantedBy=multi-user.target

ファイルを保存して閉じます。

先に進む前に、VNCサーバーがリクエストをリッスンする方法を簡単に理解しましょう。デフォルトでは、VNCはTCPポート5900 + Nを使用します。ここで、 N は表示番号です。表示番号が 1 の場合、VNCサーバーは表示ポート番号5901で実行されます。これは、クライアントからサーバーに接続するときに使用する必要のあるポートです。

ステップ4:RHEL8でVNCサービスを有効にする

5. VNCサービスを開始するには、RHEL8でデフォルトで強制モードであるSELinuxを無効にする必要があります。

# setenforce 0
# sed -i 's/enforcing/disabled/g' /etc/selinux/config

6.ここで、systemd manager構成をリロードして最近の変更を適用してから、VNCサービスを開始し、システムの起動時に自動開始できるようにして、次のsystemctlコマンドを使用して稼働しているかどうかを確認します。

# systemctl daemon-reload
# systemctl start [email protected]:1
# systemctl status [email protected]:1
# systemctl enable [email protected]:1

7.この時点で、VNCサービスが稼働しているので、netstatコマンドを使用してVNCサーバーがTCPポート5901でリッスンしていることを確認します。

# netstat -tlnp

8.次に、次に示すように、デフォルトで実行されているシステムファイアウォールサービスのポート5901を開きます。これにより、クライアントからVNCサービスにアクセスできます。

# firewall-cmd --permanent --add-port=5901/tcp
# firewall-cmd --reload

ステップ5:VNCクライアントを介してVNCサーバーに接続する

9.次に、クライアント側からVNCサーバーにアクセスする方法を見てみましょう。 VNCはデフォルトでは安全なシステムではありません。つまり、接続はまったく暗号化されていません。ただし、以下で説明するSSHトンネリングと呼ばれる手法を使用して、クライアントからサーバーへの接続を保護できます。

2つのLinuxシステム間の信頼を高めるために、サーバーとクライアントマシン間でパスワードなしのSSH認証を構成する必要があることに注意してください。

次に、Linuxクライアントマシンで、ターミナルウィンドウを開き、次のコマンドを実行して、VNCサーバーへのSSHトンネルを作成します(IDファイル(〜/ .ssh/rhel8)およびIPアドレス(192.168。)へのパスを変更することを忘れないでください。 56.110)それに応じてサーバーの):

$ ssh -i ~/.ssh/rhel8 -L 5901:127.0.0.1:5901 -N -f -l tecmint 192.168.56.110

10. SSHトンネルを作成した後、TigerVNCViewerなどのvncviewerクライアントをクライアントマシンにインストールできます。

$ sudo apt install tigervnc-viewer         #Ubuntu/Debian
# yum install tigervnc-viewer              #CnetOS/RHEL
# yum install tigervnc-viewer              #Fedora 22+
$ sudo zypper install tigervnc-viewer      #OpenSUSE
# pacman -S tigervnc                       #Arch Linux

11.インストールが完了したら、VNCクライアントを実行し、アドレス localhost:5901 を指定して、次のようにディスプレイ 1 に接続します。

$ vncviewer localhost:5901
OR
$ vncviewer 127.0.0.1:5901

または、システムメニューからVNCクライアントプログラムを検索して開き、上のアドレスを入力して、次のスクリーンショットに示すように[接続]をクリックします。

接続が成功すると、ステップ2、ポイント3で前に作成したVNCログインパスワードの入力を求められます。パスワードを入力し、[OK]をクリックして続行します。

VNCサーバーの認証が成功すると、リモートRHEL8システムのデスクトップインターフェイスが表示されます。 [Enter]をクリックしてログインインターフェイスにアクセスし、デスクトップにアクセスするためのパスワードを入力します。

この記事では、RHEL 8にVNCサーバーをインストールして構成する方法を示しました。いつものように、以下のフィードバックフォームから質問できます。