VNCによるLinuxリモート環境のGUI操作


VNC(Virtual Network Computing)は、リモート環境のデスクトップを操作するためのソフトウェアです。多くのLinuxソフトウェアはコマンドラインを前提としておりますが、KVM, JMeter. OracleのようにGUIを前提とするアプリケーションも中には存在します。このページでは、VNCを用いてリモート環境のGUIを操作する方法について説明します。

なお、クラシックな方法としてCygwin X Serverを利用する方法が有名です。sshを用いたX Server接続と異なり、VNCは以下のような困難が伴います。勤務先で使用する場合は充分に注意して下さい。

  • 外部から侵入される環境や内部犯を恐れる環境では、パスワード辞書攻撃に対する防御策の実装が必要。
  • 平文の通信になるので、セキュリティポリシーに抵触する可能性がある。
  • GUI操作を行うサーバにVNC Serverをインストールする必要があるので、関係者への事前説明が必要となる。

X Server および デスクトップ環境の準備

VNCはリモート環境のデスクトップ環境を利用して画面を描画します。Cygwin X Serverを利用する場合はX Serverを起動するのはクライアント端末側ですが、VNCはサーバ側のX Serverを利用する事に注意して下さい。

クライアント端末側ではなくサーバ側にX ServerとDesktop環境をインストールします。X ServerとDesktop環境をインストールするには、yum groupinstallコマンドを使用しましょう。このコマンドに指定する「グループ名」はバージョンやディストリビューション毎に異なりますので、まずは「グループ名」を調べます。

以下のように出力される場合は、「GNOME Desktop Environment」「」がグループ名になります。

yum groupinstallコマンドでX WIndow System環境とデスクトップ環境を整備します。

なお、OSディストリビューションによっては、デスクトップ環境が存在しないものもあります。例えば、Amazon Linux 2014.03やAmazon Linux 2015.03は、yum groupinstallコマンドで簡単にデスクトップ環境を整備する事ができません

Qiitaなどを見ると、「Amazon LinuxにVNC接続してみる」などの記事を見かけますが、偽情報ですのでご注意ください。勤務先の同僚が、この偽情報を見てどハマリしていました。恐らくQiitaの執筆者は、EC2とAmazon Linuxの用語の使い分けを混同しているのかもしれません。

VNC Serverの導入

VNC Serverのインストール

サーバ側にVNC Serverをインストールします。ディストリビューションによって、パッケージ名が「vnc-server」「tigervnc-server」等と微妙に異なりますので、まずはパッケージ名を調べます。

yum searchコマンドでパッケージ名を調べます。以下のような出力となる場合は、「vnc-server」がパッケージ名と分かりました。

VNC Serverの設定

VNC Serverは/etc/sysconfig/vncserversに設定を記述します。/etc/sysconfig/vncserversに以下を加筆します。「VNCSERVERS」には接続を行うセッション番号とユーザ名を指定します。「VNCSERVERARGS」には解像度などの指定を行います。

VNC Serverはユーザ毎にパスワードを定義する必要があります。VNC接続を行うユーザへスイッチし、vncpasswdコマンドでパスワードを設定して下さい。

パスワードは、~/.vnc/passwdに保存されます。~/.vnc/passwdというファイルが作成されている事を確認します。

VNC Serverを起動します。

tcp 5901番でListenしている事を確認します。

VNCはtcp590X番を使用し、末尾Xはセッション番号によって異なります。iptablesなどのネットワーク層の制御を行っている場合は、tcp5901からtcp5920くらいまでを許可しておくと良いでしょう。

VNC Clientの導入

VNC Client接続を行うソフトウェアをクライアント端末に導入します。クライアントソフトウェアはいろいろ種類がありますが、このページではUltraVNCを例に挙げて説明します。

UltraVNCをダウンロードします。理想は本家サイトからのダウンロードですが、英語アレルギーの方は「窓の杜」等を利用しても良いでしょう。

Ultra_VNC_download_001

ダウンロードしたインストーラーを実行します。

「Next」を押下します。

Ultra_VNC_install_001

使用許諾契約書の画面です。「I accept the agreement」を選択し、「Next」を押下します。

Ultra_VNC_install_002

UltraVNCに関する情報が表示される画面です。「Next」を押下します。

Ultra_VNC_install_003

インストールディレクトリの指定です。「Next」を押下します。

Ultra_VNC_install_004

インストールするコンポーネントの選択画面です。最低限必要となるのは、「UltraVNC – Viewer」のみです。

Ultra_VNC_install_005

スタートメニューの指定画面です。「Next」を押下します。

Ultra_VNC_install_006

拡張子の設定などを行う画面です。お好みに合わせて設定し、「Next」を押下します。

Ultra_VNC_install_007

「Install」を押下すると、インストールが開始されます。

Ultra_VNC_install_008

「Next」を押下します。

Ultra_VNC_install_009

「Finish」を押下します。

Ultra_VNC_install_010

UltraVNCによる接続操作

「UltraVNC Viewer」を起動します。

vnc_client_001

「VNC Server」欄に、接続先のIPアドレスセッション番号を入力し、「Connect」を押下します。

vnc_client_002

VNCのパスワードを入力します。

vnc_client_003

GUIアプリケーションが使用可能な事を確認します。以下スクリーンショットはOracleのインストーラーです。

vnc_client_004

動作確認環境

本手順は以下のOracle Linux 5.11を元に作成しております。

  • 動作確認日 : 2015/03/08
  • Oracle Linux 5.11 ( Oracle Virtual Box )
  • Windows 7 64bit ( レッツノート CF-J10)
  • vnc-server-4.1.2-14.el5_6.6
  • Ultra VNC Viewwe 1.2.0.5

Oracle Linux 5.11の手順しか示していませんが、ほぼ全てのLinuxディストリビューションで操作可能かと思われます。具体的な手順は省略していますが、以下のCentOS 6 環境でも動作確認ができております。

  • 動作確認日 : 2015/02/21
  • CentOS 6.5 ( Sakura VPS )
  • Windows 7 64bit ( レッツノート CF-J10)
  • tigervnc-server-1.1.0-16.el6.centos.x86_64
  • Ultra VNC Viewer 1.2.0.5

CentOS 6.5にて動作確認を行った様子は以下の通りです。

vnc_centos6_image_001

シェアする

  • このエントリーをはてなブックマークに追加

フォローする