Akira's Commentary

VNCの紹介

VNC (Virtual Network Computing)は AT&T ケンブリッジ研究所 (1) で開発されたシステムで、 リモートマシンのデスクトップを手元のマシンから使えるようにするものです。

AT&T ケンブリッジ研究所は、 以前はORL (The Olivetti & Oracle Research Lab)でしたが、 Jan. 1999, に AT&T に買収されて名前が変わりました。

AT&T ケンブリッジ研究所は、 April 23, 2002を以て閉鎖されました。 ただweb page (1)は引き続き残るそうです。 元の開発メンバによって新しい会社 RealVNCが 立ち上げられています。 新しいバージョンの開発、メイリングリスト等はこちらで 引き継がれています。

VNCは、 デスクトップをネットワークで延長して遠隔アクセスを可能にするサーバと、 ネットワーク経由でそのデスクトップにアクセスするためのクライアント (ビューワ)とから構成されます。

Structure of VNC

VNCを使うには、サーバとビューワの両方が必要です。 現在(Jan. 2000)、AT&T ケンブリッジ研究所では 以下のものを提供しています。

サーバXvnc for UNIX
WinVNC for Win32
MacVNC for PPC Mac
ビューワfor X/UNIX
for Win32
for Java
for Mac
for WinCE

提供されているサーバのうち、Win32用のものとMac用のものは、 実際のマシンのデスクトップをネットワークで延長するもので、 リモートマシン(ビューワ)からWindows、Macのデスクトップを 操作することができます。 これに対してUNIX用のサーバ(Xvnc)はビューワからのみ 参照できる仮想的なX環境を提供するものです。 Xvncサーバとビューワの組み合わせは、アプリケーションからは 普通のXサーバとして見えることになります。

VNC Structure for Windows/MAC VNC Structure for Xvnc Server

Xvncサーバは、デバイス依存の画面への描画や入力をビューワとして 分離してしまっているため、異なった環境への移植が容易です。 多くのUNIXバリアント、Windows(Cygwin)、OS/2等に移植されています。

サーバの方はものによって動作形態が異なりますが、 ビューワの方の動作はどれでもだいたい同じになります。 このため、ある場所であるビューワで作業をしていて、 他の場所に移動し、そこにあった他のマシンのビューワで 元のデスクトップに接続して作業を継続する、 といったことが可能になるわけです。

ビューワは、上記のAT&T ケンブリッジ研究所提供のものの他に、 第三者によって多数のプラットフォームに移植されています。 またJava版のビューワは、 Javaアプリケーションとして単独で使用することも、 アプレットとしてブラウザから使用することもできます。 よほど特殊な環境でないかぎり、 使用可能なビューワが入手できると思います。

よくもまあこんなのまで、というのが PalmPilot版 (最新)。 逆にありそうで無いのが、Win3.X版。これだけは何故か存在していません。 まあ、DOS版 でも使えばいいのでしょうが。

AT&T ケンブリッジ研究所提供のものは、 Downloading VNCの ページから、 第三者が移植したものについては、 VNC on other platformsの ページから入手できます。 (1)

VNCのインストール

手元の環境にインストールした時の記録です。

UNIX Package のインストール
X用のビューワと、仮想Xデスクトップを提供するサーバが含まれています。
Windows Package のインストール
Win32用(95/98/NT)のビューワとサーバが含まれています。
Java Viewer のインストール
Javaで作成されたビューワです。 アプリケーションとしてもアプレットとしても使用することができます。

Macは手元にありませんので私には判りませんが、 Macintosh NetworkingVNCの ページに詳しく説明されていますので、そちらを御覧ください。

私が移植したOS/2版のXvncとPM用のビューワについては、

に説明があります。OS/2版のXvncについては問題点等はUNIX版と同じですので、 上のUNIX Package のインストールの 説明が参考になると思います。

他のマシンへのインストールについては 日本語での説明は多分存在していないと思いますので、英語の VNC on other platforms のページから辿ってください。

VNCのドキュメント

ドキュメントを一部翻訳してみました。 英語の原文でも充分に読み易いのですが、 まあそれでも日本語版があれば多少は便利かと思います。

for UNIX X-based VNC server 原文 (mirror) 翻訳
VNC viewer for X (3.3.3以降) 原文 (mirror) 翻訳
VNC viewer for X (3.3.2以前) 原文 (mirror) 翻訳
for Windows WinVNC - The Windows NT VNC server 原文 (mirror) 翻訳
VNCviewer for Windows 原文 (mirror) 翻訳
FAQ Frequently Asked Questions 原文 (mirror) 翻訳

OS/2に移植しました

使ってみてとても便利だったのですが、私の主力マシンのOS/2では、 X版、Java版しかなくて、どちらも起動が遅いので、 ネイティブ版を作りました。 で、そうなると、Xvncがあれば、ローカルなXサーバとしても使えるので、 そちらも移植しました。

ただ、PM/WPSベースのVNCサーバは(要望は大変多いのですが)ありません。 また、作成する予定も能力も(今のところ)ありません。 (2)

ちなみに、X版のビューワ(for XFree86/2)は以下で入手できます。

バージョン3.3.3r1の移植(最新版)
これはAltair☆さん(NBG01720@nifty.ne.jp) が移植されたものです。 http://hp.vector.co.jp/authors/VA000199/os2/ から入手できます。
バージョン3.3.2の移植
これは、Bosse Nystromさん (bosse@postman.riken.go.jp) が移植されたものです。プライマリサイトは、 ftp://bfs.riken.go.jp/pub/vnc/ となっていますが、今では存在していないようです。 ですが、ミラーが Ted Sikoras site http://powerusersbbs.com/ports/ のVNCディレクトリにあります。

Inside VNC

TransTECH 1999 10月号に掲載された記事の原稿です。 翔泳社の好意により 掲載するものです。

  1. VNCとは
  2. VNCの動作原理
  3. VNCプロトコル
  4. 最後に

タイトルにあるように、もっぱらVNCの内部構造の話です。

こんな使い方も

VNCでX端末もどき

XvncサーバとVNCビューワを組み合わせて使うと、Xサーバの代用になります。 iXvnc patchを使うと ビューワからのコネクションでいきなりサーバが起動して xdmのログイン画面が表示され、 ビューワを終了させるとサーバも終了するようになります。 詳細...

なお、この機能はXvncの3.3.3r2以降でXvnc本体に組み込まれました。 上のパッチを適用しないでも、この機能を使うことができるように なっています。しかし、設定等については iXvnc patchが 一番の解説になっています。

Xvnc -inetdをブラウザから

上のVNCでX端末で書いたように、 -inetdオプションを使うとvncviewerからいきなりXサーバ (Xvncサーバ)が起動されてxdmによるログインが可能になります。 しかし、この場合には、残念なことにXvnc内蔵のhttpd機能は 使えなくなるために、webブラウザからでは使うことができません。 これについてのアイデアがvnc-mlで提示されました。 詳細...

VNCで共用NTマシンにアクセス

VNCのデフォルト設定では、 共用NTマシンのアクセスには不向きなのですが、 WinVNCのAdvanced Settingによって、 遠隔利用に適した設定に変更することができます。 詳細...

Windows VNC 日本語対応

AT&T配布のWindows用のVNCサーバ、ビューワでは、 日本語入力用のキーが使えません (日本語に限らず、いわゆるNLSキーすべてが使えません)。 すばらしいことに、日本語キーを使えるようにする パッチを作成された方がいらっしゃいます。 詳細...

書籍
VNCについての本も(いくらかは)出ています。
ガイド
WEB上で見つけたVNCの解説、ガイドです。
拡張機能
個人的に興味のあるVNCの機能拡張版等々です。 実際の動作は確認しておりません。 本家にも 各種の拡張 がありますが、補完ということでリストアップしてみました。
他のリモートデスクトッププログラム
VNC以外にもリモートデスクトッププログラムは存在しています。 それらのうちのいくつかを紹介します。