VNC サーバーを CentOS 7 にインストールおよび設定する方法

このガイドでは、最新リリースの CentOS 7 および RHEL 7 Desktop エディションに tigervnc-server プログラムを介して VNC リモートアクセスをインストールおよび設定する方法を説明します。

VNC (Virtual Network Computing) はサーバー・クライアントプロトコルで、ユーザーアカウントに、GUI によって提供されるリソースを使って離れたシステムにリモート接続および制御できるようにします。

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

要件

  1. CentOS 7 インストール手順
  2. RHEL 7 インストール手順

ステップ 1: CentOS 7 に VNC をインストールおよび設定

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

開始したVNCユーザーセッションは、同じユーザーが複数のVNCクライアントからアクセスすることが可能です。 CentOS 7にTigerVNCサーバをインストールするには、ターミナルセッションを開き、root権限で以下のコマンドを実行します。 インストール後、VNCプログラムを実行するユーザでログインし、ターミナルで以下のコマンドを実行して、VNCサーバのパスワードを設定してください。

パスワードは6文字以上でなければなりません。

$ su - your_user # If you want to configure VNC server to run under this user directly from CLI without switching users from GUI$ vncpasswd

3.次に、systemdディレクトリツリーに置かれたデーモン設定ファイルを介して、ユーザー用のVNCサービス設定ファイルを追加してください。 VNC テンプレートファイルをコピーするには、root 権限で次のコマンドを実行する必要があります。

ユーザーが sudo 権限を与えられていない場合、直接 root アカウントに切り替えるか root 権限のアカウントからコマンドを実行します。 次のステップでは、/etc/systemd/system/ディレクトリからコピーしたVNCテンプレート設定ファイルを編集し、以下のサンプルに示すように、の値を自分のユーザーを反映させるように置き換えます。 また、VNCサーバを起動するごとに、ポート5900が1ずつ増加します。

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

ファイル vncserver@:1.service に以下の行を追加します。

Description=Remote desktop service (VNC)After=syslog.target network.targetType=forkingExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/my_user/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

5.VNCサーバを起動します。 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サーバが持つリスニング状態のオープンポートを一覧するには、CentOS 7でネットワークソケットを表示するために使用されているssコマンドを実行することです。 VNCサーバーは1インスタンスしか起動していないので、最初のオープンポートは5901/TCP.

ここでも、ssコマンドはroot権限で実行する必要があります。 他のVNCインスタンスを異なるユーザのために並行して起動した場合、ポート値は2番目は5902、3番目は5903、といった具合になります。 ポート6000以上は、XアプリケーションがVNCサーバに接続するために使用されます。

# ss -tulpn| grep vnc
VNC リスニングポートの確認

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

VNCサーバのインスタンスが1つだけ起動する場合、最初に割り当てられたVNCポートだけを開く必要があります。

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

Step 2: VNC ClientでCentOSデスクトップに接続する

8.VNCサーバを1つだけ起動する場合、最初に割り当てられたVNCポート5901/TCPを開くだけで、実行時にファイアーウォール設定を適用できます。 プラットフォームに依存しないプロトコルであるため、リモート グラフィカル ユーザー インターフェイス VNC 接続は、GUI と専用の VNC クライアントがあれば、ほぼすべてのオペレーティング システムから実行できます。

Microsoftベースのオペレーティング システムで使用され、Linux TigerVNC サーバと完全互換の人気の VNC クライアントが RealVNC VNC Viewer です。

VNCプロトコルを介してMicrosoft OSからCentOSデスクトップにリモート接続するには、VNC Viewerプログラムを開き、CentOS VNCサーバーのIPアドレスとポート番号を追加して、キーを押してください。

VNC接続が確立されると、以下のスクリーンショットに示されるように、接続が暗号化されていない旨の警告が画面に表示されます。 警告を回避するには、[続行]ボタンをクリックし、ポイント2でVNCサーバーのパスワード設定を追加し、VNCサーバーインスタンスを実行するように設定されたユーザーでCentOSデスクトップにリモート接続されます。

VNC Server Authentication Warning

サーバーとクライアント間の確立したVNC通信と交換されたデータ(パスワード以外)は暗号化されていないチャネルで実行されることに注意してください。 VPN データ転送を暗号化し保護するためには、まず安全な SSH トンネルをセットアップし、その後の VPN トラフィックを SSH トンネル上で実行する必要があります。 他のCentOSデスクトップからVNCプロトコルでCentOSデスクトップにリモート接続するには、まず、以下のコマンドを発行して、vinagreパッケージがシステムにインストールされていることを確認します。 vinagreユーティリティを開くには、以下のスクリーンショットに示すように、アプリケーション -> ユーティリティ -> リモートデスクトップビューア に移動します。 CentOSデスクトップにリモート接続するには、Connectボタンを押し、リストからVNCプロトコルを選択し、リモートVNCサーバーのIPアドレスとポート(5900+ディスプレイ番号)を追加します。

リモートデスクトッププロトコルを選択
リモートVNC詳細を入力
リモートVNC CentOS Desktop

14で示されているようにVNCユーザー用のパスワード設定も提供する。 Linux ベースのプラットフォームで人気のあるもう一つの VNC クライアントは Remmina で、これはリモートデスクトップクライアントで、特に GNOME デスクトップ環境を実行する Debian ベースのディストリビューションで使用されています。 同じユーザーで新しい並列VNCセッションを実行する必要がある場合、ターミナルコンソールを開き、新しいVNCセッションを開始したいユーザーでログインし、以下のコマンドを実行します。 しかし、このセッションはログインしたユーザーの権限で実行され、起動した systemd VNC サーバーセッションとは独立していることに注意してください。

$ vncserver
Start New VNC Session

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

$ ss -tlpn| grep Xvnc
List VNC Open Ports

17.VNC セッションが開始されているものだけがリストアップされます。

Connect to VNC Remote Desktop

このログインユーザ権限で起動したVNCサーバインスタンスを停止するには、ルート権限で次のコマンドを実行します。 このコマンドを実行すると、起動したVNCインスタンスのうち、発言したユーザーのみが所有するインスタンスがすべて破壊されます。

$ su - your_user$ killall Xvnc

こちらもお読みください。 VNC モードを使用して CentOS 7 または RHEL 7 をリモートでインストールする

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

コメントを残す

メールアドレスが公開されることはありません。