Virtual Network Computing (VNC) は、ディスプレイのフレーム バッファをキャプチャし、ネットワーク経由で利用できるようにすることで機能します。この投稿では、TigerVNC をインストールして、物理的にシステムの前にいるかのようにリモート ユーザーがグラフィカル デスクトップ環境にアクセスできるように構成する方法を説明します。
この投稿の例では、CentOS 7 サーバーを VNC サーバーとして使用し、VNC クライアントを備えたローカル コンピューターを使用してそれに接続します。リモート システムが OpenSSH SSH サーバーと、GNOME や KDE などのグラフィカル デスクトップ環境を実行していることを前提としています。先に進む前に、記事「CentOS / RHEL 7 :GUI のインストール方法」を参照してグラフィカル環境をインストールしてください。
VNC サーバーのインストール
1. 必要なパッケージをインストールするために、ローカルまたはリモートの yum リポジトリにアクセスできることを確認してください。
# yum repolist
2. GUI デスクトップ パッケージがインストールされていない場合は、VNC サーバーに GUI アクセスできるようにインストールします。
# yum groupinstall "Server with GUI"
3. VNC サーバーに、TigerVNC サーバー パッケージをインストールします。
# yum install tigervnc-server
VNC サーバーの構成
設定ファイル /lib/systemd/system/[email protected] をコピーします 、ディレクトリ /etc/systemd/system/ へ 「vncserver_[ユーザー名]@:[ポート].service」の命名に従って '。例:
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver_root@:2.service # cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver_oracle@:3.service注意 :ユーザーごとに異なる構成ファイルを作成するのが一般的です。ベスト プラクティスとして、構成ファイルにユーザー名を追加すると、各ユーザーに属するファイルを識別できるようになります。これは必須ではありません。
3. 各ユーザー用に作成された構成ファイルを変更します (この例では、root と oracle を使用します):
A. <USER> プレースホルダーは、ファイル「vncserver_root@:2.service」の [Service] に表示される「root」ユーザーに置き換え、ファイル「vncserver_oracle@:3.service」の「oracle」を vi に置き換えます。
# vi /etc/systemd/system/vncserver_root@:2.service # vi /etc/systemd/system/vncserver_oracle@:3.service
「sed」を使用して、ユーザー名を自動的に置き換えることもできます:
# sed -i 's/<USER>/root/g' /etc/systemd/system/vncserver_root@:2.service # sed -i 's/<USER>/oracle/g' /etc/systemd/system/vncserver_oracle@:3.service
B. 各ユーザーの構成ファイルにもジオメトリを追加します。この例では、「-geometry 800×800」を追加します 」を構成ファイルに追加します。これは、「ExecStart」で始まる行の最後になります。
# vi /etc/systemd/system/vncserver_root@:2.service # vi /etc/systemd/system/vncserver_oracle@:3.service
4. ステップ A と B で変更を行った後、構成ファイルの下で変更した行は次のようになります。
ファイル「vncserver_root@:2.service」の場合 」
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=root # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i -geometry 800x800" PIDFile=/home/root/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
ファイル「vncserver_oracle@:3.service」の場合 」
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=oracle # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/sbin/runuser -l oracle -c "/usr/bin/vncserver %i -geometry 800x800" PIDFile=/home/oracle/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
ExecStart で指定されたコマンド systemctl start を使用してサーバーを起動すると、エントリが呼び出されます。 runuser を使用します ユーザーのアカウントで TigerVNC を実行します。 -l 引数はユーザー名と -c を提供します runuser が実行するコマンドとその引数を指定します。 PID ファイル エントリは、実行中のプロセスがそのプロセス ID を追跡するディレクトリを指定します。
注意 :RHEL7.4 以降、呼び出し時に vncserver に渡すサポート対象のサーバー オプションは、~/.vnc/ ディレクトリ内の「config」という名前の新しいファイルに移動されました。したがって、これらのオプションを ExecStart 行に追加する必要はありません。firewalld を構成する
1. ディスプレイの対応するポートへのトラフィックは、ファイアウォールによって許可されている必要があります。ディスプレイ 0 はポート 5900 を使用し、ディスプレイ 1 はポート 5901 を使用し、ディスプレイ 2 はポート 5902 を使用するなどです。 FirewallD を使用している場合、定義済みの vnc-server サービスがポート 5900-5903 を開きます:
# firewall-cmd --zone=public --permanent --add-service=vnc-server
追加のポートが必要な場合、または範囲全体を開く必要がない場合は、–add-port:を使用して必要なものだけを開くことができます:
# firewall-cmd --zone=public --permanent --add-port=5901/tcp
2. ファイアウォールをリロードして、ファイアウォール ルールを有効にします。
# firewall-cmd --reload
3. 構成をリロードします:
# systemctl daemon-reload
サービスを開始してパスワードを設定
1. 次に、選択したポートで各ユーザーの vncserver サービスを有効にします。これにより、以下のコマンドを使用して、システム起動時の自動起動も有効になります:
# systemctl enable vncserver_root@:2.service Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver_root@:2.service to /etc/systemd/system/vncserver_root@:2.service.
# systemctl enable vncserver_oracle@:3.service Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver_oracle@:3.service to /etc/systemd/system/vncserver_oracle@:3.service.
2. systemd の設定をリロードして、新しいユニット ファイルを認識させます。
# systemctl daemon-reload
3. vncserver で使用する各ユーザーのパスワードを構成します。
# vncpasswd root Password: Verify: Would you like to enter a view-only password (y/n)? n
# vncpasswd oracle Password: Verify: Would you like to enter a view-only password (y/n)? n
4.「vncserver」を実行する必要があります 」 ユーザーとしてログインしているときにコマンドラインで。これにより、ユーザーの新しいパスワードを作成するように自動的に求められます。
# vncserver You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /root/.Xauthority does not exist New 'geeklab:1 (root)' desktop is geeklab:1 Creating default startup script /root/.vnc/xstartup Creating default config /root/.vnc/config Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/geeklab:1.log
VNC ビューアーで VNC サーバーにアクセスする
クライアント マシンに任意の VNC ビューアー ソフトウェアをインストールして、VNC サーバーにアクセスできます。 MAC で realVNC ソフトウェアを使用して VNC サーバーにアクセスしています。お使いのOSに合わせて、以下のVNCビューアソフトをご利用いただけます。
1. TigerVNC :http://tigervnc.org
2.タイトVNC :https://www.tightvnc.com/download.php
3. RealVNC :https://www.realvnc.com/en/connect/download/viewer
VNC ディスプレイを使用 :1 VNV サーバーを接続するため。
そこにいます!!!これで、VNC サーバーに接続されました。
CentOS/RHEL 6 で VNC サーバーを構成する方法