VNC

PCの遠隔操作とは?

 最近のPCは個人でもEthernetによるLANを使ってファイル共有することが多くなってきた。
 しかし,LANを構築していても別のマシンを操作したいときには,わざわざその場所へ行ってそのPC用のキーボードやマウスで別々に操作しなければならない。PCがすぐ横にあればまだいいのが,これが隣の部屋だったり,別の建屋だったりすると非常に面倒だ。ここで,登場したのがPCの遠隔操作ソフトです。リモート・アクセス・ソフトとも呼ばれている。
 これは,遠隔操作したいPCに特別なソフトウェアを動かしておくと,操作するPC側では,まるでそのPCは手元にあるかのように操作できるようになる。
 また,製品によっては,AT互換機でMACやLINUXなど別のOSを遠隔操作できるものもある。これを使用すれば,
   管理者がたくさんあるPCをその場でメンテナンスすることができる。
   パソコン教室などで,操作方法を説明する。
   障害の起こったPCをすぐに回復操作する。
などに利用できる。
 ほかにもPCにはディスプレイを接続しないで稼動しておき,操作したくなったら遠隔操作するなんていう方法も可能となる。これならば余計なディスプレイも必要無いのでスペースの有効活用もなる。
 ただし,ネットワークを経由して操作することになるので操作にある程度のタイムラグが発生する。
 現在では,いくつかの会社がPCを遠隔操作できるソフトをリリースしている。

製品名 メーカ 備考 URL
Desktop On-Call IBM 製品 http://www.ibm.co.jp/pspjinfo/javadesk/
LAPLINK2000 interCOM 製品 http://www.intercom.co.jp/lap/2000/index.html
pcANYWHERE32 シマンテック社 製品 http://www.symantec.com/region/jp/products/pca90/pca90.html
VNC AT&T Laboratories Cambridge Free http://www.uk.research.att.com/vnc/
リモコン倶楽部 株式会社ディアイエス 製品 http://www.dis.co.jp


 ここでは,無料で使用できる AT&T Laboratories Cambridge のVNCを紹介しよう。

VNCの紹介

 VNCは AT&T Laboratories Cambridgeの開発しているPC遠隔操作ソフトウェアだ。VNCとは「Virtual Network Computing」の略で,現在は無料(GPL準拠)で配布されている。

about WinVNC

このVNCは,多くのOSに対応している。これは,サーバ(操作されるPCにインストール)とクライアント(操作するPCにインストール)によって対応OSに違いがある。もちろん,異なるOS間での操作も可能です。(例:LinuxでWindows95の画面を操作することができる。)
 ただし,通信プロトコルとしては,TCP/IPを使用する。各マシンにはIPアドレスを振り,サーバ・クライアント間でPingが通ることが必要。Windowsの場合は,ネットワークの設定でTCP/IPプロトコルを使用可能にしておけばよい。

動作環境(2000/02/調査)

 
OSサーバ クライアント URL
BeOS × http://abstrakt.ch/be/
DEC Alpha OSF1 3.2 http://www.uk.research.att.com/vnc/
DOS [要TCP/IPドライバ] × http://www.complang.tuwien.ac.at/nino/dosvnc.html
Java × http://www.uk.research.att.com/vnc/
KDE http://studserver.uni-dortmund.de/~su0197/kde/kvnc/
Linux 2.0 for x86 http://www.uk.research.att.com/vnc/
Linux for PPC ftp://ppc.linux.or.jp/pub/JRPM/pre-R5/.
MAC OS(68K,PPC) http://www.uk.research.att.com/vnc/
OS/2 × http://www.sra.co.jp/people/akira/os2/vnc-pm/index.html
Pilot × http://www.icsi.berkeley.edu/~minenko/PalmVNC/
Solaris 2.5 http://www.uk.research.att.com/vnc/
Win32 (Intel) 9x,NT,2000 http://www.uk.research.att.com/vnc/
Windows CE 2.x(SH3,MIPS) × http://www.uk.research.att.com/vnc/
ブラウザ(IE,NS) × http://www.uk.research.att.com/vnc/


 最新の対応プラットフォームはVNC on other platforms & environmentsを参照してほしい。スクリーンショットのサンプルは,VNC screenshotsにもある。
 Windowsは一度にログインできるユーザが1人だけですので,WinVNCでは操作できる画面も1つの画面を共有して遠隔操作することになる。Linuxなどの場合は,VNCサーバがXサーバの役割をするため複数の画面を持つことが出来る。また,XサーバとしてVNCサーバを使用している場合,簡単に画面の変更部分を認識できるので高速に動作する。
 ここでは,Windows(Win32)用のVNCについて紹介する。このWin32版VNCは,Windows95・98・ME・NT(SP3以降)・2000で動作する。

インストールとサーバ設定(Windows用)

 まずは,インストールするファイルをダウンロードする。上記の必要なファイルは窓の杜http://www.uk.research.att.com/vnc/で手に入れることが出来ます。左横の 「Download」をクリックし,ダウンロード用のフォームに必要な項目を書き込む。ここで,ダウンロードするバイナリパッケージは Windows 9x/2000/NT (Intel Win32) 。ここにチェックを入れる。その他,オンライン・ドキュメントなどが必要であれば一緒にダウンロードする。
 現在(2001/12)のWindows9x/2000/NT (Intel Win32) 用のVNCパッケージのバージョンは 3.3.3r9だ。ダウンロードすると, vnc-3_3_3r9_x86_win32.zip というファイルができるので,これを任意のディレクトリに解凍する。
 インストールは簡単だ。
 解凍すると,vnc_x86_win32 というディレクトリの下に
  ・vncviewer
  ・Winvnc
の2つのディレクトリが出来る。インストールするPCをクライアントのみとするのであれば,vncviewer の下のvncviewer.exeを単に実行すればよいので特にインストールする必要はない。このファイルを,適当なディレクトリにコピーする。サーバとして起動する場合は,Winvncの下にSetup.exe があるので,これを実行して,指示通りにすればインストールされる。
 その後,「スタート」→「プログラム」→「Vnc」→「Administrative Tools」→「Install Default Registry Settings」 を実行する。標準では,プログラムは C:\Program Files\ORL\VNC の下にインストールされるはずだ。(サーバをインストールすると,クライアントも一緒にインストールされる。)
 さて,インストールが終了したら遠隔操作されるPCでサーバを起動する。
 単に,winvnc.exeを起動すること(「スタート」→「プログラム」→「Vnc」→「Run WinVNC (App Mode)」)でVNCサーバは起動します。最初の起動時には,「WinVNC Current User Properties」ダイアログが現われる。ここで,少なくとも入力しなければならないのは「Password」だ。このPasswordはクライアントから遠隔操作するときに入力するパスワードだ。下の「Update Handling」はどのタイミングで画面の再描画を行うかの設定画面です。

vnc_properties

 この設定は,ある程度のネットワークのスピードを要求するが,それなりに快適に使用することができる。100BASEのLanであれば特に問題ないでしょう(画面サイズ&色は 640*480・8bit )。CPUもPentiumの200MHzもあればかなり快適だ。(もちろん速ければ速いほどいい)。画面表示の正確性よりも,操作レスポンスの向上が欲しい場合は,"Poll Full Screen"のチェックを外し, "Pull Foreground Window"と"Poll Console Windows Only" のチェックを入れると画面の書換範囲&頻度がかなり減りますので操作性が良くなるが,そのかわりDOS窓の表示などで画面表示が正しくなくなる場合がある。
 さて,上では単独でWinVNCサーバを起動したが,PCの起動時に自動的にWinVNCを起動する方法もある。
  • Win9xの場合
  •  「スタート」→「プログラム」→「Vnc」→「Administrative Tools」→「Install WinVNC Service」を実行することで,レジストリに自動起動アプリケーションとして登録する。あとは,再起動すれば自動的に起動する。
  • WinNT・2000の場合
  •  「スタート」→「プログラム」→「Vnc」→「Administrative Tools」→「Install WinVNC Service」を実行することで,サービスとしてWinVNCを登録します。あとは,再起動すれば自動的に起動します。
  •  スタートアップホルダに,WinVNC.exeを登録するというやり方をしてもいいのだが,この場合はOSのユーザのログイン画面のときにVNCサーバが起動していないため,VNCで遠隔操作できないことになる。上記の方法で起動すれば,ユーザのログイン画面のときでも,VNC経由で操作可能となる。
     VNCサーバが起動すると,次のようなアイコン(左端の白いアイコン)が表示される。(このアイコンをダブルクリックすることで上の設定画面を出すことが出来る。)

    vnc_icon_off

     これで,サーバ側の準備は完了です。

    クライアントからの接続方法

     クライアント側からVNCサーバに接続するにはWindowsの場合,2種類の方法がある。ブラウザ(IE・NS等)を使用して接続する。 専用のクライアント・アプリケーション(vncviewer.exe)を使用する。ブラウザ経由ならば普段使用しているIEさえあれば接続できる。ただし,専用のクライアントを使用するとブラウザを使用するよりも快適に使用することができる。

    ブラウザからの接続方法

     Windows版の場合,VNCサーバ自身が簡易Webサーバの機能を持っているので,Javaの実行機能を持っているWebブラウザから接続することができる。接続するときはURLに

      http://ホスト名:(5800とDisplay numberを足した数字)

    と指定すると,ログオン画面が出てくる。このDisplay numberはサーバの設定画面で指定するもので,通常はautoを指定する(このときは0が指定されたものとして扱えばいい)。例えば,192.168.29.200というサーバ(マシン名:M2)で,Display numberにautoを指定している場合は

      http://192.168.29.200:5800/

    または,接続サーバがWin98のときや,hostsファイルにホスト名称が登録してある場合は,

      http://m2:5800/

    とすると,接続画面が現われる(横のオプションはOptionsボタンを押すと現われる)。

    vnc_ie_logon vnc_ie_option

     ここで,サーバの設定画面で指定したパスワードを入力してOKボタンを押すと,接続できる(一部画面の色が変なのは,サーバ側が256色設定になっているため)。

    vnc_ie_connection

     このようにサーバ側の画面が表示され,ここから自由にマシンの操作が可能となる。誰かがVNCサーバに接続すると,ダイアログボックスのVNCアイコンが黒く変化する。
     また,上の「Clipbord」ボタンを押すと,サーバ上でのクリップボード内容の表示画面が画面が現われ,このクリップボードの内容表示画面を経由して,クリップボード内容のやり取りを行うことが出来る。(やり取りの出来る内容は文字列のみ。)

    vnc_ie_clipboad.gif

     「Send Ctrl-Alt-Del」ボタンは,サーバにおいて[Ctrl-Alt-Del]が押されたものと認識させるためのものだ。ただし,この機能が使用できるのは,VNCサーバをNT上でサービスとして起動している場合のみ。Win9xの場合は使用出来ない。
     VNCではファンクションボタンを含む複数ボタンの同時押しが認識されないため,このようなボタンが用意されている(また,101キーボードにはない全角半角キーなどの特殊キーが認識されないので,サーバ上のFEPのOn/Offはダイアログボックスのアイコンから行わなければならない)。
     サーバ側の画面が出てからでも「Options」ボタンを押して設定の変更が可能。ただし,この場合は Share desktop の項目の変更は出来ない。「Disconnect」ボタンは,サーバからログアウトする場合に利用する。

    専用クライアントソフトからの接続方法
     Windows版の場合,専用のクライアントソフト(vncviewer.exe)が付属している。Vncviewerは,ブラウザにより接続よりも快適に使用でき,機能も上だ。Vncviewerの起動は,「スタート」→「プログラム」→「Vnc」→「Run VNCviewer」で行うことが出来る(vncviewer.exeを起動している)。
     単に,Vncviewerを起動すると,次のようなログオン画面が出てくる。

    vnc_viewer_logon.jpg

     サーバの指定は,

      ホスト名:Display number

    を指定する。たとえば,192.168.29.200というサーバ(マシン名:M2)で,Display numberにautoを指定している場合は

      192.168.29.200:0

    または,接続サーバがWin98のときや,hostsファイルにホスト名称が登録してある場合は

      m2:0

    と指定してもよい。「Oprions」ボタンを押すと接続設定を行うことが出来る。

    vnc_viewer_option.jpg

     例えば,

      Request shared session(1つのサーバに複数のVncviewerから同時に接続可能とする。)
      Restrict pixels 8-bit[for slow network](転送時に色数を256色に落として,ネットワークの伝送量は減らす。)

    を指定する場合には,該当箇所のチェックボタンを有効にする。ただし,この指定は毎回変更しなければならない。次のように Vncviewer.exeの起動時のオプションで指定することもできる。

      "C:\Program Files\ORL\VNC\vncviewer.exe" /8bit /shared m2:0

    オプションは"/"で始まる部分。オプションの意味は次の通り。(その他のオプションは後で説明)

    /8bit 画面の色数を8ビット(BGR2:3:3)にして,画面データを伝送することでネットワークの負荷を減らす。
    /shared 1つのサーバに対して複数のVNCViewerから接続できるようにする。
    通常,既に誰かが接続しているときに新しく接続しようとすると,既にある接続を強制的に切断する。
    これを回避するにはこのオプションをつける。
    (サーバを占有せずに,共有できるように接続する。)


     また,その後ろに ホスト名:Display number を記述すると,サーバ名の指定画面が出ずに,直接パスワードの入力画面となる。(/config を使用すると,パスワードの入力画面も省略可能。これもあとで説明する。)

    vnc_viewer_password

    ここで,サーバの設定画面で指定したパスワードを入力してOKボタンを押すと,接続する。(一部画面の色が変なのは,サーバ側が,256色設定になっているため。)

    vnc_viewer_connection

     このようにサーバ側の画面が表示され,ここから自由にマシンの操作が可能となる。誰かがVNCサーバに接続すると,ダイアログボックスのVNCアイコンが黒くなる。また,ブラウザとはクリップボード内容の扱いが違い,クリップボード内容の表示画面を経由しなくても直接クリップボード内容を共有することが出来る(共有できる内容は文字列のみ)。
     専用クライアントでは,Full-Screenモードというものが有る。これは,画面上部の右クリックメニューから”Full screen”を選択するか,Vncviewer起動時のオプションで,"/fullscreen"オプションを指定することで動作する。このモードでは,画面全体に接続先の画面が表示され,サーバとクライアントで同じ解像度を使用しているときには完全に接続先サーバの画面がそのままこちらに来たような形になる。これは,サーバとクライアントで同じ解像度を使用しているときに遠隔操作したときにスクロールバーが出てしまうことを回避するためのモードだ。このモードを抜けるためには,Ctrl+Esc Esc と押してクライアント側のタスクバーを表示させ,Vncviewerのアイコンの右クリックメニューでFullscreenのチェックを外す必要がある。ブラウザ接続時にあった「Disconnect」ボタンに相当するものは専用クライアントではない。専用クライアントを終了すると自動的にサーバからログアウトする。その他は,設定できる内容(スケール設定など)が増えているだけで,ブラウザからの接続の場合と変わりはない。ウインドウ画面の上部で右クリックを押すと,Vncviewerでの各種設定および特殊キーの入力等を行うことが出来る。この画面になっていも,ログオン時に指定したオプションの変更は一部(Request shared session)を除いて可能。
     さて,最適な設定が終わったら,現在の設定内容をファイルに保存することが出来る。右クリックを押したときに出てくる”Save connection info as...”がそうだ。セーブするディレクトリとファイル名(拡張子は.vnc)を指定。ここでは,”C:\Program Files\ORL\VNC\m2.vnc”を指定する(ディレクトリは,vncviewer.exeと同じディレクトリを指定するといい)。すると,パスワードも設定ファイルに含めるかを聞いてきますので,自動的にパスワードを入力するようにするのであれば”はい”を,接続ごとにパスワードを自分で入力するのであれば”いいえ”を押す。これで,接続設定ファイル(*.vnc)ファイルが出来あがる。この設定ファイルを起動時に指定するには,/config オプションを使用する。

      "C:\Program Files\ORL\VNC\vncviewer.exe" /config m2.vnc

    これで,設定ファイルにパスワードを含めていれば自動的にログインすることが出来る。
     また,Vncviewer.exeを/registerオプション付きで1度起動すれば,.vncファイルにVncviewerが関連付けられるので,.vncファイルをダブルクリックして自動的にログインすることも可能となる。

    上級者向けセッティング(Vncviewer編)

    Vncviewerはコマンドラインで,機能の指定を行うことが出来る。オプションは”/”もしくは”-”ではじまる文字列。

    オプション 動作
    /8bit 画面の色数を8ビット(BGR2:3:3)にして,画面データを伝送することでネットワークの負荷を減らす。
    /belldeiconify VNCにはベル信号を受信することでアラームを鳴らす機能があるが,このベル信号を受信したときにVncviewerが最小化していた場合に自動的に最小化を解除させることが出来る。
    /config configlist 接続設定ファイルを参照して,指定されたサーバに接続する。
    [configlist = 設定ファイル名(.vncファイル)]
    /console Vncviewerの動作ログをコンソール画面に出力する。
    (/logfileと同時に指定可能です。)
    /disableclipboard クリップボードの共有機能を無効にする。
    /dotcursor ローカル側のマウスポインタを点で表示する。[デフォルト]
    /emulate3 2ボタンマウスで,3ボタンマウスのエミュレーションを行う。
    [デフォルト設定]
    (真中のボタンは,左右のボタンの同時押しの操作をする。)
    /emulate3fuzz n 3ボタンマウスエミュレーションの有効時に,左右同時押ししたときのマウスの位置ずれの許容範囲をピクセル単位で行う。
    [n is 数字・default n=4]
    /emulate3timeout n 3ボタンマウスエミュレーションの有効時に,左右同時押しの間隔誤差の許容範囲をmsec単位で指定する。
    [n is 数字・default n=100]
    /fullscreen フルスクリーンモード(画面全体をサーバ側の画面とする)で起動する。
    /keyboard kbdname 入力キーボードレイアウトの指定を行う。
    現在のキーボード名は,Connection Infoで確認できます。
    [kbdname = キーボード名]
    /linten VNCサーバからの接続要求に対する待ち受けモードで起動する。[listenモード]
    /logfile filename Vncviewerの動作ログを出力するファイル名を指定する。
    [filename = ログファイル名]
    /loglevel n Vncviewerの動作ログの詳細レベルを指定する。
    0は出力無し。12はもっとも詳細レベルまで出力する。
    [n = 0..12・default n=0]
    /nocursor ローカル側のマウスポインタを表示しない。
    /noemulate3 2ボタンマウスで,3ボタンマウスのエミュレーションを行わない。
    /normalcursor ローカル側のマウスポインタを矢印にする。
    /register .vncファイルをvncviewer.exeに関連付ける。これにより,.vncファイルをダブルクリックするだけで,サーバに接続できる。
    /restricted 画面上部での右クリックメニューを最低限のものに限定する。
    /scale a/b クライアントの表示画面をa/b倍する。
    [a,b is 数字・default a=1,b=1,指定の/bは省略可能です。]
    /shared 1つのサーバに対して複数のVncviewerから接続できるようにする。
    通常,既に誰かが接続しているときに新しく接続しようとすると,既にある接続は強制的に切断される。
    これを回避するにはこのオプションをつける。
    (サーバを占有せずに,共有できるように接続する。)
    /swapmouse 3ボタンマウスエミュレーションの有効時に,ボタン2・3の入替を行う。
    /viewonly サーバ側の画面表示のみを行い,遠隔操作は無効とする。


     現在の設定では,FullScreenに切替したときに,FullScreenの解除方法の説明ダイアログが表示される。しかし,実際に運用するときには,このダイアログが邪魔になることがある。このダイアログを表示しないようにするには,レジストリを操作する必要がある。regeditで次のキーをDWORDで作成し,そこに”1”をセットする。

      HKEY_CURRENT_USER\Software\ORL\VNCviewer\Settings\SkipFullScreenPrompt

    これで,ダイアログが出なくなる。

    上級者向けセッティング(WinVNC[サーバ]編)

     WinVNCは起動中はダイアログボックスにアイコンが表示される(クライアントから未接続:白 クライアントから接続有:黒)。このアイコンを右クリックするとメニューが表示される。

    オプション 動作
    About WinVNC WinVNCサーバのバージョン情報等を表示する。
    Add New Client Listenモードで待機しているクライアントにサーバから接続する。
    Close WinVNCサーバを終了する。
    Kill Alll Clients WinVNCサーバに接続しているクライアントをすべて終了する。
    Properties WinVNCサーバの接続条件などを設定する画面を表示する。


    Properties画面では,WinVNCサーバの接続条件などを設定する。

    オプション 動作
    Accept Socket Connections サーバにソケット経由での接続を許可する。
    現在のバージョンでは,このチェックを外すとサーバへの接続が不可になる。
    Auto 最初にクライアントからアクセスされたDisplay Numberを自動的に使用する。
    Disable Local Keyboard & Pointer サーバのキーボード・マウスの入力を無効化する。
    Disable Remote Keyboard & Pointer クライアント側からのキーボード・マウスの入力を無効化する。
    Display Number 接続 Display Number を指定する
    (http://経由Port:5800 + Display Number)
    (VNCViewer経由Port:5900 + Display Number)
    Password サーバ接続時のパスワードを指定する。
    Poll Console Windows Only 画面更新条件設定です。
    Poll Foreground Windowをチェック入れたときに指定できる。
    コマンドプロンプト(DOS窓)だけをチェックします。
    Poll Window Under Cursorにチェックが入っている場合は,マウスカーソルがコマンドプロンプトの上にあるときにだけ画面更新チェックを行う。
    Poll Foreground Window 画面更新条件設定です。
    フォアグランドになっているウインドについてのみ画面更新が行われているかのチェックを行う。
    Poll Full Screen 画面更新条件設定です。
    画面全体について,画面更新が行われているかのチェックを行う。
    この方法では確実に画面更新が行われるが,性能は極端に低下する。
    Poll On Event Received Only 画面更新条件設定です。
    Poll Foreground Windowをチェック入れたときに指定できる。
    クライアントからのマウス,キーボードからの入力があったときのみ画面更新チェックを行う。低速ネットワーク用の設定。
    Poll Window Under Cursor 画面更新条件設定です。
    このチェックを入れるとカーソルの下のウインドウのみをチェックするようになる。


    WinVNCはコマンドラインで,機能の指定を行うことが出来る。オプションは”/”もしくは”-”ではじまる文字列だ。

    オプション 動作
    /about WinVNCサーバのバージョン情報等を表示する。
    /connect host listenモードで待機しているクライアント(host)にサーバーから接続する。
    /default setting WinVNCのデフォルト設定画面を表示する。
    /install VNCサーバをサービスとして登録する。
    Win95の場合は自動起動するようにレジストリに登録する。
    /kill 動作中のWinVNCサーバを終了する。
    /remove /installの登録を解除する。
    /run VNCサーバを起動する。
    /setting WinVNCのユーザ設定画面を表示する。


     WinVNCは,特殊な設定をレジストリで指定することが出来る。ここでは,通常の接続設定では指定できない部分を紹介する。これらのレジストリキーはAuthHosts以外はDWORDタイプで新規に作成する。同じキーが複数書いてある場合には,下側の部分の設定が優先される。

    使用しているレジストリ
     ローカルマシン固有の情報
      ここで設定された内容は,どこからも上書きされない。
      HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\
     ローカルのデフォルトユーザ設定
      ローカルのユーザ毎の設定・グローバルユーザ毎の設定で上書きされる。
      HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default\
     ローカルのユーザ毎の設定
      ココの項目でデフォルトユーザ設定が上書きされる。
      <username>はサーバーでログオンしたユーザ名。ユーザがログオンしていない場合はSYSTEMが使用される。
      HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>\
     グローバルユーザ毎の設定
      AllowPropertiesが0以外の場合だけ参照される。
      HKEY_CURRENT_USER\Software\ORL\WinVNC3\

    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\AuthRequired
    VNCサーバーのパスワードの未入力チェックを行うかどうかを指定する。
    セキュリティの面から言えば,ここを0にするときは注意が必要。

    LAN環境だけで使用するのであれば,NULLパスワードを許しても問題ないと思う。 0:サーバのパスワードに未入力を許す。
    1:サーバのパスワードの未入力チェックを行う。(デフォルト)
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\AllowLoopback
    テストや,SSHなどを利用する場合に,自分自身からのサーバへのアクセスを行うかを指定する。

    0:自分自身からののサーバーへの接続は拒否する(デフォルト)。
    1:自分自身からののサーバーへの接続を拒否しない。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default\AllowProperties
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>\AllowProperties
    サーバの設定画面の表示・変更を許可するかを指定する。
    また,この項目を0とすると,グローバルユーザ設定を参照しなくなる。

    0:サーバーの設定画面の表示を不可とする。
    1:サーバーの設定画面の表示を可能とする。(デフォルト)
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default\AllowShutdown
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>\AllowShutdown
    WinVNCサーバを終了出来ないようにする。

    0:WinVNCサーバの終了を不可にする。
    1:WinVNCサーバの終了を可能にする。(デフォルト)
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\AuthHosts
    WinVNCサーバに接続可能なIPアドレスを特定する。
    このキーは他のものと違って,REG_SZ stringタイプで作成します。

    IPアドレスの指定は
    -[IPアドレス]で指定IPアドレスを除外し,
    +[IPアドレス]で指定IPアドレスを追加する。

    IPアドレスは,192.168のように指定すると,192.168.xx.xxのIPアドレスをまとめて指定することも可能。
    また,”:”をはさむことで複数の指定を同時に記述することも出来る。
    例えば,192.168.29.xxのIPアドレスを持つPCからのみからの接続を許可するのであれば

    -:+192.168.29

    と指定する。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default\CORBAConnect
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>\CORBAConnect
    HKEY_CURRENT_USER\Software\ORL\WinVNC3\CORBAConnect
    CORBAによる接続を行うが,AT&Tの内部バージョン用の設定だ。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\DebugLevel
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\DebugMode
    DebugModeは内部のデバッグ゛用のメッセージを出力先をどこにするかを指定する。
    標準は0。複数の出力を指定するときには,下の数字を加算すればよい。

    1:MSVCデバッガ用(MSCVでデバッガを有効にしてコンパイルした場合のみ有効)
    2:WinVNCディレクトリのWinvnc.logというファイル名で出力する。
    4:コンソールウインドウを表示し,そこにデバッグログ内容を出力する。

    DebugModeはデバッグメッセージの詳細度を指定する。
    標準は0(メッセージ出力無し)で,もっとも細かい内容を出力するのが12となる。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\ConnectPriority
    サーバの接続時のクライアントの同時接続の指定を行う。
    ただし,クライアント側で共有指定有りで接続している場合には既存の接続は切断しない。

    0:既にクライアントから接続されているときは,既存の接続をすべて切断する。(デフォルト)
    1:クライアントの同時接続を無条件で許可する(既存の接続を切断しない)。
    2:新しいクライアントからの接続を拒否する。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default\LockSetting
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>\LockSetting
    HKEY_CURRENT_USER\Software\ORL\WinVNC3\LockSetting
    Vncviewerとの接続が切断されたときにWinVNCがどのような処理をするかを指定する。

    0 - 何もしない (デフォルト)
    1 - 切断時にサーバーをロックする(未実装)
    2 - 切断時に自動的にログオフします。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\LoopbackOnly
    通常,VNCは他のPCからのみクライアントからのアクセスのみを許可する。
    しかし,SSHなどを経由して利用する場合には自分自身からのサーバへの接続のみを有効にする必要がある。
    ここを”1”にしたときは,AllowLoopbackおよびAuthHostsの設定は無視される。

    0:他のPCからの接続を許可する。
    1:自分自身からのサーバへの接続のみを許可する。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default\PortNumber
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>\PortNumber
    HKEY_CURRENT_USER\Software\ORL\WinVNC3\PortNumber
    Winviewerから接続する際のPORT番号が入る(AutoPortSelectが無効のときのみ有効)。

    設定画面でDisplay Numberを50と指定したときには,5950(5900+50)が入る。
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default\
    HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>\
    HKEY_CURRENT_USER\Software\ORL\WinVNC3\
    に存在する。

    AutoPortSelect
    InputEnabled
    Password
    PollUnderCursor
    PollForeground
    PollFullScreen
    OnlyPollConsole
    OnlyPollOnEvent
    SocketConnect
    それぞれ,WinVNCの設定画面の各項目に対応する。
    ただし,InputEnabledだけは逆の意味になっている。


    終わりに

     このように,VNCは非常に便利な遠隔操作ソフトだ。
     VNCは非常に便利なソフトウェアだが,その分セキュリティの面から言えば,かなり危険なソフトといえる。極端な話,”サーバのIPアドレス”と”接続Display number”それに”パスワード”がわかればなんでも出来る(システムの破壊だって思うがままだ)。インターネットに常時接続されているようなPCでVNCサーバーを運用する場合には特に注意が必要だ(”パスワードを簡単なものにはしない”,”Display numberを標準のものと変更する”,”接続できるPCを制限する”など)。
     マシンが部屋にたくさんあるような場合は,導入を検討してみてはいかがですか?。Linux・Windows・MACを同時に使用している場合にも便利だ。ほかにも,”こんな機能があります”とか,”こんな使い方もあります”,”ここの説明が違う”とかありましたら,ぜひ教えてください。

    VNC関連リンク

    AT&T Laboratories Cambridge
     (VNCの開発元。VNCのダウンロードはこちら。)

    畠山氏のVNCのページ
     (VNCの詳細な情報が満載なページ。和訳ドキュメントも豊富。)

    TridiaVNC
     TridiaVNCは,オリジナルVNCの標準エンコード方式である"Hextile"よりも効果的にデータを圧縮可能な「Zlib」圧縮を行うことが出来るようになっている。また,本来無保証であるVNCを有償でサポートを行っているというのも特徴のひとつ。

    TightVNC
     TridiaVNCをさらに効率的にデータを伝送することのできるよう改良されている。VNCはネットワーク経由でホストをコントロールするのに便利なツールだが,通信速度が遅いため,特に電話回線などを通じでリモートコントロールするには,かなり重くなる。この問題について「Zlib」圧縮よりも圧縮効率の良い方式をとることによって,さらに通信の効率をあげようとするアプローチのひとつがTightVNCである。

    WINVNCDRV(video hook driver for windows 2000)
     Windows 2000に最適化されたVNCだ。これは,通常のWinVNCが,画面から更新部分を毎回サーチしているのに対し,WINVNCDRVでは,Windowsと通常のビデオドライバとの間に,VNC Hook Driverを用意することで,更新部分のみを効率的に知ることが出来る用にするアプローチをすることでスピードアップを図っている。残念ながら,VNC Hook DriverはWindows 2000専用となっているため,Win9X・Me・NT4.0では使用できないが,Linux用VNCであるXVNC並みの反応速度を得ることが出来る。

    トップページへ