Skip to content

翻訳記事:

  • RED HAT Magazineは、米国発の記事を翻訳したものです。

RED HAT SPEAKS

VNCによるバーチャルデスクトップの構築

執筆者:Tim Waugh


はじめに

一日の仕事を終え、私はデスクトップコンピュータの電源を切ります。次の朝、また電源を入れると、中断したところから作業を続けることができます。コンピュータの電源を入れたとき、使用するアプリケーションウィンドウはすべて、前回作業を中断したときの場所にあります。Webブラウザには読みさしているWebページも表示されています。どうやって? バーチャルネットワークコンピューティング(Virtual Network Computing:VNC)を私は使用しているのです。

私のデスクトップセッションは実際には、別の建物にある別のマシン上で稼働しています。確かに、私が操作している目の前のデスクトップコンピュータではVNCビューアが実行されており、私のデスクトップが表示されています。しかし、このデスクトップのアプリケーションはVNCサーバセッション内部で実行されているのです。

VNCのアプリケーション

VNCを使用することにより、いくつかの問題が解決されます。私がVNCを使用する理由は、上に述べたようなパーシステントデスクトップを手にできるからです。これがVNCを使用する最も一般的な理由の1つです。1台のコンピュータがVNCサーバを実行します。VNCサーバは仮想フレームバッファ型で、画面画像(2次元配列ピクセル)を管理しますが、この画像を画面に直接表示しません。別のコンピュータがVNCビューアを実行します。VNCビューアは、クライアントとして動作し、VNCサーバからフレームバッファ画像を取得してそれを実際の画面に表示します。パーシステントデスクトップを提供するVNCでは、私はログインやログアウトを行う必要はありません。ただ、VNCビューアアプリケーションを実行して、前回中断したところから私のセッションを再開するだけでよいのです。

VNCサーバとビューアは、多種多様なオペレーティングシステムで使用できます。Red Hat® Enterprise Linux® 4には、サーバと2つのビューア(Java版およびネイティブアプリケーション)が含まれています。VNCサーバは、HTTP上でJavaビューアを提供するように構成できるため、任意のオペレーティングシステム上で任意のJava対応WebブラウザをVNCビューアとして使用できます。

VNCの設計では、VNCビューア側に求められる要求はあまりありません。ほとんどの作業はサーバ側で行われます。このため、VNCは、シンクライアントシステム(複数のディスクレスマシンが単一のパワフルなサーバにグラフィカルインタフェースを提供するシステム)を構築するのに最適なテクノロジとなります。シンクライアントはVNCビューアを実行するだけでよく、一方、アプリケーションはサーバ上に常駐できます。

シンクライアントの1つのタイプはXターミナルです。Xターミナルは、X Window Systemを実行しネットワークに接続する専用マシンです。一般に、これらのマシンがサーバに接続するように構成され、このサーバがログインウィンドウを表示します。Xターミナルは、X Window Systemプロトコルを使用してサーバからのグラフィックスを表示します。

VNCビューアは、ログインウィンドウを提供するVNCサーバと連動し、ソフトウェアXターミナルと同様に動作します。これにVNCを使用する利点は、ユーザがVNCビューアをいったん切断して別の部屋や別の建物に移動してから再接続した場合でもログインセッションがそのまま継続している点にあります。セッションが終了するのは、ユーザがログアウトしたときのみです。その後、VNCビューアで接続すればログインウィンドウが再度表示されます。

VNCのもう1つの使用方法は、リモートでの画面の制御や表示を実行することです。Red Hat Enterprise Linux 4にはこれを行ういくつかの方法が含まれています。最も簡単な使用方法は、メニューの[Main Menu]-[Preferences]にある[Remote Desktop]エントリです。セッションを表示または制御するには、[Allow other users to view your desktop]と[Allow other users to control your desktop]のチェックボタンをクリックします。また、このダイアログボックスでVNCアクセスに対するパスワードを設定し、図1. リモートデスクトップに示すように、VNCビューアの接続時にパスワード入力を要求させることもできます。 図1. リモートデスクトップ

Remote desktop
図1. リモートデスクトップ

あまり簡単ではないですがより効果的に同じ効果を得るための方法は、X Window System対応のVNCローダブルモジュールを使用することです。これを設定するための手順は、RealVNC Webサイトにあります。このモジュールを使用すると、誰もログインしていない場合でも、リモートから画面のログインウィンドウを表示して制御できます。

Red Hat Enterprise Linux 4では、VNCがあればこのオペレーティングシステムをインストールしている間も快適な生活が送れます! kickstart機能を使用すれば、kickstartファイルで事前に設定されているインストールオプションやパッケージセレクションにより、無人の自動インストールが可能であることはもうご存知でしょう。でも、インストール対象のマシンが物理的に離れた場所にあるか、あるいは他の国にある場合でも、Red Hat Enterprise Linuxインストール手順をインタラクティブに制御できることをご存知ないかもしれません。

Red Hat Enterprise Linuxのインストール対象のマシンに対し、インストールの最初からVNCサーバとして動作するように指示できます。簡単に説明すれば、これを行うには、PXE(または任意の同様の方法)を使用してブートし、コマンドラインlinux ks vncをインストーラに渡します(PXEネットワークインストールのドキュメンテーションへのリンクは、「関連資料」セクションを参照してください。インストールディレクトリ(おそらくNFSサーバ)の場所を設定するだけの、DHCPを使用する最小のkickstartファイルを提供します。インストーラが起動すると、VNCビューアを起動してマシンのIPアドレスに接続できるようになります。

パーシステントデスクトップの設定方法

以下に、Red Hat Enterprise Linux 4でVNCを使用するパーシステントデスクトップをセットアップするときに必要な各手順について説明します。

最初に、VNCサーバに対するパスワードを設定します。これを行うには、通常どおりログインし、シェルプロンプトからvncpasswdコマンドを実行します。VNCサービスは、パスワードが設定されていないと起動しません。

次に、su –を使用してrootとなり、/etc/sysconfig/vncserversファイルを編集します。fredとjoe(fredより大きい画面サイズを選択)用に2つのパーシステントデスクトップセッションを設定するには、例1. /etc/sysconfig/vncserversの例のように記述する必要があります。

# VNCSERVERS変数は、display:userペアのリストです。
#
# display :1上でVNCサーバを起動するには、下の行を非コメント化します。
# as my 'myusername'(自分用に調整する)
# また、VNCパスワードを設定する必要があります。設定方法を見るには、
# 'man vncpasswd'を実行します。
#
# 使用しているLANがトラステッドでない場合はこれを実行しないでください!
# VNCを使用するセキュアな方法については、
# <URL:http://www.uk.research.att.com/vnc/sshvnc.html>を参照してください。

VNCSERVERS="1:fred 2:joe"

# fredのVNCオプション
VNCSERVERARGS[1]="-geometry 1024x768"

# joeのVNCオプション
VNCSERVERARGS[2]="-geometry 1280x1024"
例1. /etc/sysconfig/vncserversの例

ブート時にすべてのVNCパーシステントデスクトップを起動するには、(rootとして)chkconfig vncserver onを指定してVNCサービスを有効にします。次に、VNCパーシステントデスクトップを起動するには、service vncserver startと入力します。どちらのユーザも、VNCビューアに接続できるようになり、fredはディスプレイ番号1、joeはディスプレイ番号2に接続します。

VNCのデフォルトデスクトップセッションは、twmウィンドウマネージャを使用した非常にシンプルなものです。VNCデスクトップセッションを、通常よく見られるログインセッションと同じ外観と動作にすることもできます。これを実行するには、/home/username/.vnc/xstartupファイルを編集し、Uncomment the following two lines for normal desktopという行の後に続く2行の行頭の#を削除します。

VNCビューアの使用方法

Red Hat Enterprise Linux 4、Microsoft® Windows®または任意の他のプラットフォーム上で、Java VNCビューアやネイティブVNCビューアのどれを使用している場合でも、この手順は大体において同じです。Red Hat Enterprise Linux 4上では、このアプリケーションはメニューの[Main Menu]-[Accessories]-[VNC Viewer]から見つけることができます。

接続先のVNCサーバを要求するダイアログボックスが表示されます。[Options...]ボタンを使用し、VNCビューアの操作方法のいくつかを設定できます。

VNCサーバは、ホスト名(またはIPアドレス)とディスプレイ番号によって識別されます。例1. /etc/sysconfig/vncserversの例/etc/sysconfig/vncserversファイルがhoopoe.elkというマシン上にある場合、joeのセッションのVNCサーバはhoopoe.elk:2となります。

VNCディスプレイ番号は、Webブラウザでポート番号の指定にhostname:number構文が使用されている場合でも、IPポート番号ではありません。さらに紛らわしいことには、Java VNCビューアでは、Webブラウザを使用する場合このようにポート番号を指定することによってアクセスします。Java VNCビューアのポート番号は、ディスプレイ番号+5800です。たとえば、Webブラウザを使用するjoeのVNCセッションを取得するには、URLはhttp://hoopoe.elk:5802/となります。

パスワードがVNCサーバに設定されている場合、VNCビューアはそのパスワードの入力を要求します。次に、VNCビューアウィンドウにデスクトップセッションが表示されます(図2. VNCビューアウィンドウを参照)。VNCビューアウィンドウを閉じてもデスクトップセッションは終了しません。

図2. VNCビューアウィンドウ
VNC Viewer window
図2. VNCビューアウィンドウ

接続設定を調整するには、メニューのF8を押します(図3. VNCビューアメニューを参照)。フルスクリーンモードでVNCビューアを実行すると、通常はウィンドウマネージャによって阻止されるキーの組み合わせを取得できます。たとえば、Alt-Tabはウィンドウ間を切り替えます。フルスクリーンモードでは、これは、VNCビューアウィンドウとローカルセッションの他のウィンドウの間でなく、VNCセッションでのウィンドウ間を切り替えます。

VNC Viewer menu
図3. VNCビューアメニュー

F8を押すと、VNCメニューが表示されますが、VNCセッションで実行しているアプリケーションにVNCビューアの代わりにキープレスを取得させたい場合は、VNCメニューから[Send F8]を選択します。

クイック手順

Red Hat Enterprise Linux 4上でVNCを使用するパーシステントデスクトップを設定するために必要な各手順をまとめると次のようになります。

  1. vncpasswdを使用してパスワードを設定する
  2. /etc/sysconfig/vncserversを編集する
  3. chkconfig vncserver onを指定してサービスを有効にする
  4. service vncserver startを指定してサービスを起動する
  5. /home/username/.vnc/xstartup を編集する(twmより高度なセッションとxtermを希望する場合)

関連資料

次号のシリーズパート2では、VNC設定のトラブルシューティングを取り上げ、VNCの高速化するためのヒントもいくつか紹介します。

執筆者について

Tim Waughは、Red Hatのシステムエンジニアで、スキャニング/プリンティング、DocBook、VNC、および一部のシェルユーティリティの開発を主に担当しています。1995年からLinuxを使用しており、夫人と共にサリー州(英国)に住んでいます。