Show Table of Contents
第13章 TigerVNC
TigerVNC (Tiger Virtual Network Computing) は、グラフィカルデスクトップシェアリングのシステムで、他のコンピューターのリモート制御を可能にします。
TigerVNC は、クライアントサーバープリンシパルで機能します。サーバーはその出力 (vncserver) を共有し、クライアント (vncviewer) はサーバーに接続します。
注記
以前の Red Hat Enterprise Linux ディストリビューションとは異なり、Red Hat Enterprise Linux 7 の
TigerVNC は、その設定に systemd システム管理デーモンを使います。/etc/sysconfig/vncserver 設定ファイルは、/etc/systemd/system/vncserver@.service に代わりました。
13.1. VNC サーバー
vncserver は、VNC (Virtual Network Computing) デスクトップを起動するユーティリティーです。適切なオプションで Xvnc が実行され、VNC デスクトップ上でウィンドウマネージャーが起動します。vncserver を使うと、どこからでもいくつものクライアントがアクセス可能なマシン上で独立したセッションを同時に実行できます。
13.1.1. VNC サーバーのインストール
TigerVNC サーバーをインストールするには、以下のコマンドを
root で実行します。
~]# yum install tigervnc-server
13.1.2. VNC サーバーの設定
VNC サーバーでは、表示設定、ネットワークアドレスおよびポート設定、セキュリティー設定などに対するオプションのパラメーターを使用して 1 人または複数のユーザー用の画面を起動するよう設定できます (ユーザーのシステムがシステムに存在する場合)。
手順13.1 単一ユーザー用の VNC 画面の設定
/etc/systemd/system/vncserver@.serviceという名前の設定ファイルが必要になります。このファイルを作成するには、/usr/lib/systemd/system/vncserver@.serviceファイルをrootでコピーします。~]#cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.servicesystemdはオンデマンドでメモリー内に適切な名前が付けられたインスタンスを自動的に作成し、サービスファイル内の'%i'は画面番号に置き換えられるため、ファイル名に画面番号を含める必要はありません。単一ユーザーの場合は、ファイルの名前を変更する必要がありません。複数ユーザーの場合は、たとえば、ユーザー名をファイル名に追加して、各ユーザーに対して一意な名前が付けられたサービスファイルが必要です。詳細については、「ユーザー 2 人用に VNC サーバーを設定する」 を参照してください。/etc/systemd/system/vncserver@.serviceを修正して、USER を実際のユーザー名で置き換えます。その他の行は、そのままにしておきます。-geometry引数は、作成される VNC デスクトップのサイズを指定します。デフォルトでは、1024x768に設定されます。ExecStart=/usr/sbin/runuser -l USER -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/USER/.vnc/%H%i.pid
- 変更を保存します。
- 変更を直ちに反映させるには、以下のコマンドを実行します。
~]#systemctl daemon-reload - 設定ファイルでユーザー用のパスワードを設定します。まず、
rootから USER に切り替わる必要があることに注意してください。~]#su - USER~]$vncpasswdPassword: Verify:重要
保存されたパスワードは暗号化されていません。パスワードファイルにアクセスがあれば、誰でもプレーンテキストでパスワードを見つけることができます。
「VNC サーバーの起動」 に進みます。
13.1.2.1. ユーザー 2 人用に VNC サーバーを設定する
同一マシン上で複数のユーザーを設定したい場合は、ユーザーごとに異なるテンプレートタイプのサービスファイルを作成します。
- たとえば、
vncserver-USER_1@.serviceとvncserver-USER_2@.serviceの 2 つのサービスファイルを作成します。これら 2 つのファイルで、USER を正しいユーザー名に置き換えます。 - 両方のユーザーでパスワードを設定します。
~]$su - USER_1~]$vncpasswdPassword: Verify:~]$su - USER_2~]$vncpasswdPassword: Verify:
13.1.3. VNC サーバーの起動
サービスを起動もしくは有効にするには、コマンドで直接ディスプレイ番号を指定します。手順13.1「単一ユーザー用の VNC 画面の設定」 の上記で設定したファイルはテンプレートとして機能し、 そこでは
%i は systemd がディスプレイ番号に置き換えます。有効な番号を用いて、以下のコマンドを実行します。
~]# systemctl start vncserver@:display_number.service
また、システム起動時に自動的にサービスが開始するようにすることもできます。そうすると、ログイン時に
vncserver が自動的に開始されます。root で以下のコマンドを発行します。
~]# systemctl enable vncserver@:display_number.service
この時点で、他のユーザーは VNC ビューアープログラムを使用して、定義された画面番号とパスワードで VNC サーバーに接続できます。グラフィカルデスクトップがインストールされている場合は、そのデスクトップのインスタンスが表示されます。これは、ターゲットマシンで現在表示されているものと同じインスタンスではありません。
13.1.3.1. ユーザー 2 人および 2 つの別個のディスプレイ用に VNC サーバーを設定する
vncserver-USER_1@.service および vncserver-USER_2@.service という 2 つの設定済み VNC サーバーで、異なるディスプレイ番号を有効にすることができます。たとえば、以下のコマンドでは、USER_1 の VNC サーバーがディスプレイ 3 で起動し、USER_2 の VNC サーバーがディスプレイ 5 で起動することになります。
~]#systemctl start vncserver-USER_1@:3.service~]#systemctl start vncserver-USER_2@:5.service
13.1.4. GDM 用の XDMCP を使用した xinetd ベースの VNC セットアップ
GDM 用の X Display Manager Control Protocol (XDMCP) を使用した xinetd ベースの VNC セットアップは、主にシンクライアントで構成されているクライアントシステムに有益なセットアップです。セットアップ後、クライアントは GDM ログインウィンドウにアクセスでき、システムアカウントにログインできます。セットアップの条件は gdm、vnc、vnc-server、および xinetd パッケージがインストールされていることです。
~]# yum install gdm tigervnc tigervnc-server xinetd
サービス xinetd を有効化する必要があります。
~]# systemctl enable xinetd.service
システムのデフォルトターゲットユニットは
graphical.target になっているはずです。現在設定されているデフォルトターゲットユニットを取得するには、以下を使用します。
~]# systemctl get-default
以下を使用して、デフォルトターゲットユニットを変更できます。
~]# systemctl set-default target_name手順13.2 GDM ログインウィンドウへのアクセスとログイン
/etc/gdm/custom.conf設定ファイルを編集して、GDM を設定して XDMCP を有効化します。[xdmcp] Enable=true
- 以下のコンテンツで
/etc/xinetd.d/xvncserverというファイルを作成します。service service_name { disable = no protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry selected_geometry -depth selected_depth securitytypes=none }server_args セクションで、-query localhostオプションが xdmcp セッションの各 Xvnc インスタンスクエリー localhost を作成します。-depthオプションは作成される VNC デスクトップのピクセル深度 (ビット) を指定します。使用可能な値は 8、15、16、24 で、他の値はアプリケーションの予期せぬ動作につながることがあります。 - ファイル
/etc/servicesを編集し、サービスを定義します。これを行うには、以下のスニペットを/etc/servicesファイルに追加します。# VNC xinetd GDM base service_name 5950/tcp
- 設定の変更が反映されるよう、マシンを再起動します。あるいは、以下を実行します。init レベルを 3 に変更し、5 に戻して、gdm をリロードします。
# init 3 # init 5
gdm が UDP ポート 177 をリッスンしていることを確認してください。# netstat -anu|grep 177 udp 0 0 0.0.0.0:177 0.0.0.0:*
xinetd サービスを再起動します。~]#systemctl restart xinetd.servicexinetd サービスが新しいサービスを読み込んだことを確認します。# netstat -anpt|grep 595 tcp 0 0 :::5950 :::* LISTEN 3119/xinetd
- vncviewer コマンドを使用してセットアップをテストします。
# vncviewer localhost:5950
コマンドは、パスワードを求められない localhost に対して VNC セッションを起動します。GDM ログイン画面が表示され、有効なユーザー名とパスワードでシステムのユーザーアカウントにログインできます。それから、リモート接続で同じテストを実行できます。
セットアップのためのファイアウォールを設定します。ファイアウォール設定ツールを実行し、TCP ポート 5950 を追加してシステムへの接続を許可します。
~]#firewall-cmd --permanent --zone=public --add-port=5950/tcp~]#firewall-cmd --reload
13.1.5. VNC セッションの終了
vncserver サービスの有効化と同様に、システム開始時に自動的にサービスの起動を無効にすることができます。
~]# systemctl disable vncserver@:display_number.service
または、システムの実行中に、以下のコマンドを
root で発行すると、サービスを停止することができます。
~]# systemctl stop vncserver@:display_number.service
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.