このドキュメントは、AT&Tケンブリッジ研究所の X-based VNC server (based on Unix package 3.3.3r2)を勝手に翻訳したものです(1)。
X-based VNC server
VNCの紹介 / VNCのドキュメント / X-based VNC server
最終更新 2001-04-06 (更新履歴)
Table of Contents
X-based VNC server
XvncはUnix用のVNCサーバで、 標準的なXサーバに基づいています。 アプリケーションはXvncを 通常のXディスプレイと同じように使うことができます。 しかし、実際にはサーバマシンの実際のディスプレイではなく、 接続されたVNC viewerに表示されます。
つまりXvncには二つのサーバが入っているわけです。 アプリケーションから見た場合にはXサーバとして動作し、 VNCのユーザから見た場合にはVNCサーバとして動作していることになります。 使い勝手がよくなるように、VNCサーバのディスプレイ番号が Xのディスプレイ番号と同じになるようにしています。つまり、 snoopy:2はXにおいてもVNCにおいても マシンsnoopyのディスプレイ番号2を指し示すことになります。
通常はvncserverスクリプトによって Xvncを起動します。 このスクリプトはXvncの起動を簡略化するためのもので、 perlで書かれています。 多くの場合、それぞれの使用環境に合わせて多少の手直しが必要でしょう。 直接Xvncを起動するよりも vncserverスクリプトで起動する方を薦めます。 しかしXvncは、いくつかの拡張が加えられている他は、 標準的なXサーバと同じオプションを持っていますので、 直接起動してもかまいません。 Xvnc -hでオプションの一覧が表示されます。
Getting Startedでいったように、 vncserverは全くオプション無しで起動することができます。 この場合には、 最初に見つかった利用可能なディスプレイ番号を選び、 Xvncをそのディスプレイ番号で起動し、 いくつかのアプリケーション(ウィンドウマネージャ等)を起動します。 vncserverは、また、 ディスプレイ番号を指定して起動することもできます。
vncserver :13
この場合には、指定されたディスプレイ番号が使用可能になっていれば そのディスプレイ番号でサーバを起動し、 使用可能になっていなければ(他で使われていれば)終了します。
他のオプションについては、-helpで一覧表示されます。 以下のオプションは特によく使われます。
- -name name
- 各デスクトップは名前を持ち、 デスクトップ名はビューワによって表示されます。 デフォルトは「X」ですが、 このオプションによって変更することができます。
- -geometry widthxheight
- 生成されるデスクトップのサイズを指定します。 デフォルトは1024x768です。
- -depth depth
- 生成されるデスクトップのピクセルデプスを指定します デフォルトは8です。
- -pixelformat format
- サーバが使用するピクセルフォーマットを指定します。 フォーマットはBGRnnn、 あるいはRGBnnnで、 nはそれぞれのビット数を指定します。
vncserverには 標準のXサーバの引数も指定することができます。 それらの引数はXvncにそのまま渡されます。 Xvnc -hでオプションの一覧が表示されます。 Xvnc独自のオプションとして、 以下のものがあります。
- -inetd
- このオプションを指定すると、 Xvncをinetdから 起動して使えるようにします。 詳しくは the extras page を御覧ください。
- -alwaysshared
- 新しく接続してきたクライアントを常に共有させます。 クライアント側の共有指示は無視されます。
- -nevershared
- 新しく接続してきたクライアントを常に共有させません。 クライアント側の共有指示は無視されます。
- -dontdisconnect
- 新しい「非共有」の接続が要求された時に、既存の接続を切断しないで、 その代わりに新しい接続要求の方を拒否します。 新しい「共有」接続要求については通常と同じように接続されます。
- -localhost
- 同一ホストからの接続要求だけを受け付けるようにします。 これはSSHを使用し、 SSH以外の他のホストからの接続を拒否する場合に便利です。 詳しくは using VNC with SSH を御覧ください。
- -cc n
- VNCサーバで使用されるカラービジュアルクラスを変更します。 通常の8ビットデプスのXvncでは 8ビットのTrueColorビジュアルを使用しますが、 ある種のXアプリケーションは このようなビジュアルでは正常に動作しません。 そのような場合には-cc 3で Xvncサーバに8ビットのPseudoColorビジュアルを 使用するように指示することができます。
- -economictranslate
- ビューワが、 サーバが使用しているネイティブのピクセルフォーマットと 異なったピクセルフォーマットを要求してきた場合、 サーバはピクセル値の変換のためにルックアップテーブルを使います。 このテーブルは、 接続しているクライアント毎に256KBのサイズになります。 多くのビューワを接続するような場合には、 このオプションによって、多少速度は低下するものの、 サーバが消費するテーブルのサイズを節約することができます。 このオプションは 16ビットデプスのデスクトップの場合だけ意味を持ちます。
- -deferupdate n
- "deferred update"がサポートされました。 これは、画面が更新された時に、 一定時間(デフォルト40ms)待ってから 画面更新をクライアントに通知するものです。 これによって通知される画面更新がまとめられますので、 表示が速くなります。 この遅延時間は -deferupdate オプションで変更できます。 これを0にすると、以前のXvncと同じ動作になります。
vncserverスクリプトを使用した場合には、 Xvncサーバ起動後に、 スクリプト~/.vnc/xstartupが実行されます。 VNCデスクトップの ウィンドウマネージャを替えたいような場合には このファイルを編集してください。 サーバはディレクトリ~/.vncにログを書き込みます。 コンフィギュレーション上の問題や、 起動に問題があった場合には、 このログファイルによって問題を調べることができます。
Reverse connections
Xvncからリッスン状態のビューワへの 逆方向のコネクションができるようになりました (通常はビューワからサーバにコネクションをはります)。
この機能は、WinVNCには前からありました。
これはヘルパープログラムの vncconnectによって行なわれます。 以下のように指示します。
vncconnect host
ここでhostは、 リッスン状態のビューワが動作しているホストです。 リッスンしているポート番号がデフォルトの 5500以外の場合には、 host:portとして指示します。 vncconnectは単純なXプログラムで、 ルートウィンドウのプロパティを変更します。 このプロパティの変更によって、 Xvncが実際にコネクションをはります。 この時、DISPLAY環境変数が 制御しようとするXvncを 示すようになっていなければなりません。 通常のXサーバに対して vncconnectを実行しても何もおきません。 また、コネクションが成功したか失敗したかの通知は、 Xvncのログファイルにしか現われません。 vncconnectを実行したコンソールには 何も表示されませんのでご注意ください。