CentOSとRHELにVNCサーバーをインストールして構成する方法

このガイドでは、VNCリモートアクセスCentOS 7/8およびRHEL 9/8/7デスクトップエディションでtigervnc-serverプログラムを介してインストールおよび構成する方法を説明します。リモートデスクトップマシンにアクセスするために。

VNC (仮想ネットワークコンピューティング) は、ユーザーアカウントがリモートで接続してグラフィカルユーザーインターフェイスのリソースを使用して遠隔地のシステムを制御できるようにするサーバークライアントプロトコルです。

他のVNCサーバーとは異なり、VNC XVinoなど、ランタイムデスクトップに直接接続するサーバーですが、tigervnc-vncserverは、各ユーザーのスタンドアロン仮想デスクトップを構成する異なるメカニズムを使用します。

要件

ステップ 1: CentOS で VNC をインストールして設定する

1. Tigervnc-server は、Xvnc サーバーを実行し、VNC デスクトップ上で Gnome または 他のデスクトップ環境 のセッションを開始するプログラムです。

A started VNC user session can be accessed by the same user from multiple VNC clients. In order to install the TigerVNC server in CentOS/RHEL, open a terminal session and issue the following yum command with root privileges.

$ sudo yum install tigervnc-server
Install TigerVNC in Linux

2. プログラムをインストールした後、VNC プログラムを実行するユーザーでログインし、VNC サーバーのパスワードを設定するために、ターミナルで以下のコマンドを発行します。

パスワードは少なくとも6文字以上であることに注意してください。

$ su - your_user
$ vncpasswd
Create VNC Password

3. 次に、VNC サービス構成ファイルをユーザーに追加します。これは、systemd ディレクトリツリー内のデーモン構成ファイルを使用して行われます。VNC テンプレートファイルをコピーするために、ルート権限で以下の cp コマンド を実行する必要があります。

もしあなたのユーザーがsudo特権を付与されていない場合、直接ルートアカウントに切り替えるか、ルート特権を持つアカウントからコマンドを実行してください。

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

4.次のステップで、/etc/systemd/system/ディレクトリからコピーされたVNCテンプレート構成ファイルを編集し、以下の値を、以下のサンプルに示すようにあなたのユーザーを反映するように置き換えてください。

コード>1は、@記号の後に表示されるディスプレイ番号(ポート5900+display)を表します。また、開始された各VNCサーバーに対して、ポート59001ずつ増加します。

# vi /etc/systemd/system/vncserver@\:1.service

ファイルvncserver@:1.serviceに以下の行を追加してください。

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

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
Configure VNC Systemd

5.VNCサービスファイルに適切な変更を加えた後、systemdシステム初期化プログラムをリロードして、新しいvnc構成ファイルを取得し、TigerVNCサーバーを起動してください。

また、VNCサービスのステータスを確認し、以下のコマンドを発行してVNCデーモンをシステム全体で有効にしてください。

# systemctl daemon-reload
# systemctl start vncserver@:1
# systemctl status vncserver@:1
# systemctl enable vncserver@:1
Start VNC Service

6. VNCサーバーが所有するリスニング状態で開かれたポートをリストするには、ssコマンドを実行します。これは、ネットワークソケットを表示するために使用されます。VNCサーバーのインスタンスを1つだけ開始したため、最初の開いたポートは5901/TCPです。

再び、ssコマンドはroot権限で実行する必要があります。異なるユーザーのために他のVNCインスタンスを並行して開始する場合、ポート値は2番目のインスタンスで5902、3番目のインスタンスで5903、以下同様になります。ポート6000+は、XアプリケーションがVNCサーバーに接続できるようにするために使用されます。

# ss -tulpn| grep vnc
Verify VNC Listening Ports

7.外部のVNCクライアントがVNCサーバーに接続できるようにするには、適切なVNCオープンポートがファイアウォールを通過できるようにする必要があります。

VNCサーバーのインスタンスが1つだけ開始されている場合、最初に割り当てられたVNCポートだけを5901/TCPで開く必要があります。以下のコマンドを発行して、ファイアウォールの設定を実行時に適用します。

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

ステップ2: VNCクライアント経由でCentOSデスクトップに接続する

8.プラットフォームに依存しないプロトコルであるため、リモートグラフィカルユーザーインタフェースVNC接続は、GUIと専用のVNCクライアントを持つほぼすべてのオペレーティングシステムから実行できます。

A popular VNC client used in Microsoft-based operating systems, fully compatible with Linux TigerVNC server, is the RealVNC VNC Viewer.

CentOS DesktopからMicrosoft OS経由でVNCプロトコルを使用してリモート接続するために、VNC Viewerプログラムを開き、CentOS VNCサーバーのIPアドレスとポート番号を追加し、[enter]キーを押します。

VNC接続が確立されると、接続が暗号化されていないことを示す警告が画面に表示されることがあります。以下のスクリーンショットに示すように、

VNC Viewer Client
VNC Viewer Client Connection

9.警告をバイパスするために、Continueボタンをクリックし、VNCサーバーのパスワードを追加して、VNCサーバーアカウントで構成されたユーザーでCentOS Desktopにリモート接続できるようになります。

VNC Server User Password
VNC Remote CentOS Desktop

10.新しいAuthenticationメッセージが画面に表示され、ユーザーにroot権限がない場合は、CancelボタンをクリックしてCentOS Desktopに続行できます。以下のスクリーンショットに示すように、

VNC Server Authentication Warning

サーバーとクライアントの間で確立されたVNC通信と交換されるデータ(パスワードを除く)は暗号化されていません。VPNデータ転送を暗号化してセキュリティ保護するために、最初に安全なSSHトンネルを設定し、その後のVPNトラフィックをSSHトンネル上で実行する必要があります。

11.他のCentOS DesktopsからCentOS Desktopにリモート接続するためにVNCプロトコルを使用するには、まず、以下のコマンドを発行してシステム上にvinagreパッケージがインストールされていることを確認してください。

$ sudo yum install vinagre

12. ビネガー ユーティリティを開くには、以下のスクリーンショットに示すように アプリケーション -> ユーティリティ -> リモートデスクトップビューア に移動します。

Open Vinagre Tool

13. CentOSデスクトップにリモートで接続するには、接続 ボタンを押し、リストから VNC プロトコルを選択し、リモートVNCサーバーの IPアドレス とポート (5900 + ディスプレイ番号) を追加します。また、VNCユーザーのパスワードを設定している場合は、次のスクリーンショットに示すように供給してください。

Select Remote Desktop Protocol
Enter Remote VNC Details
Remote VNC CentOS Desktop

14. もう一つの人気のあるLinuxベースのプラットフォームのVNCクライアントは、Remmina です。これは、Debianベースのディストリビューション でGNOMEデスクトップ環境を実行している場合に特に使用されるリモートデスクトップクライアントです。

Debianベースのディストリビューションで Remmina Remote Desktop クライアントをインストールするには、次のコマンドを発行してください。

$ sudo apt-get install remmina

ステップ3: CentOSで複数のVNCセッションを構成する

15. 同じユーザーの下で新しい並列VNCセッションを実行する必要がある場合は、ターミナルコンソールを開き、新しいVNCセッションを開始するユーザーとしてログインし、次のコマンドを実行してください。

サーバーを初めて起動すると、このセッションの新しいパスワードを指定するように求められます。ただし、このセッションがログインユーザーのアクセス許可で実行され、systemd VNCサーバーセッションとは独立していることに注意してください。

$ vncserver
Start New VNC Session

16. 新しいVNCセッションは、次に利用可能なVNCベースのポート(この例では5900+3ディスプレイ)で開かれます。開かれたポートを表示するには、以下の抜粋に示すように、ルート権限なしでssコマンドを実行してください。これにより、あなたのユーザーによって開始されたVNCセッションのみがリストされます。

$ ss -tlpn| grep Xvnc
List VNC Open Ports

17. これで、新しいVNCセッションを使用してCentOSデスクトップにリモート接続し、以下のイメージに示すようにVNCクライアントでIP:ポートの組み合わせ(192.168.1.23:5903)を指定してください。

Connect to VNC Remote Desktop

これらのログインユーザーの権限で開始されたVNCサーバーインスタンスを停止するには、ルート権限なしで以下のコマンドを発行してください。このコマンドは、それらを開始したユーザーにのみ所有されるすべての開始されたVNCインスタンスを破壊します。

$ su - your_user
$ killall Xvnc

以上です!これで、オペレーティングシステムによって提供されるグラフィカルユーザーインターフェースを使用して、CentOSシステムにアクセスして管理タスクを実行できます。

Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/