Virtual Network Computing
Virtual Network Computing(ヴァーチャル・ネットワーク・コンピューティング、略称VNC)は、ネットワーク上の離れたコンピュータを遠隔操作するためのRFBプロトコルを利用する、リモートデスクトップソフトである。VNCはクロスプラットフォームなソフトウェアとして開発されているため、インストールされているマシン同士はOSなどのプラットフォームの種類に依存することなく通信できる。
VNCの最初のバージョンは Olivetti & Oracle Research Lab によって開発されたが、オリジナル版のソースコードがGPL方式のライセンス下でオープンソースとして公開されているため、現在では様々な派生ソフトが誕生している。
目次
概要
このソフトウェアはサーバソフトと、クライアント(もしくはビューア)ソフトの2つに分かれている。
操作される側でサーバソフトを起動しておき、遠隔操作する側はクライアントソフトを起動させ接続、遠隔操作を行う。
VNCで通信プロトコルとして使用されるRFB Protocolは非常に簡素なプロトコルで、サーバ側はピクセルデータ化した画面を小さな長方形に分け、位置を指定してクライアントに送信するだけである。しかし、この方法は非常に単純であると同時に、大きな帯域幅を使用する。そこで、帯域幅の削減のために様々な方法が編み出された。様々なエンコード形式やデータ圧縮がこれに該当するが、最も単純な方法は、前の送信と比較して変更された部分のみを送信する方法である。これはマウスポインタの移動のみが行われた場合などには非常に有効だが、全体的な変化の大きい動画再生をしている画面などを送信するには適していない。それはネットワークが十分に高速であっても変わらない。なお、このような拡張プロトコルを使用するには、サーバとクライアント双方のソフトウェアがその形式に対応している必要がある。
デフォルトではTCPの5900から5906までのポートを使用する。また、ウェブブラウザ上で動作するJava版のクライアントは、既定で5800から5806までのポートを使用する。これらは設定によって変更可能である。
Windowsでは基本的にシングルセッションOSのため、5900番以外のポートを使用することは少ない。ただし、ターミナルサービスと併用して先述のような環境を作ることも可能である。
メリット
当項目冒頭にもあるとおり、VNCはマルチプラットフォームでのGUIの遠隔操作が可能である。Linuxの操作をWindowsから、あるいはその逆でWindowsの操作をLinuxからなど、非常に自由度が高い。派生ソフトのMetaVNCにおいてはLinux上のウインドウ毎にVNCビューアを開くことができる。
また、タブレット端末からVNCを利用して自宅のPCを操作し、ファイルの送受信、テレビ録画予約などの用途が広がる。同様にWi-Fi通信ができるPDAやLinuxを搭載したものでも同様の可能性がある。
CPU切替器という商品があり、複数台のPC、複数のOSを一組のモニタ、マウス、キーボードで操作できるが、これをVNCで代用することもできる。
PC操作を教える側、教わる側が傍にいなくても、実際に操作して見せて説明ができる。これに特化したのがMultiVNCと言えるが、他の派生VNCでも充分な場面が多い。
ネットワーク管理者が、施設内の複数のPCのメンテナンスを行う際、時間やコストを削減するのに役立てる場合がある。
外出先から、あるいは前述の管理者がVNCを利用する場合、電源の切れているPCはWake-on-LANを利用することで電源を入れることができる。こういった複合的な手段で多様な可能性がある。
デメリット
セキュリティ
通常、VNCは通信に暗号を用いないため、パスワード等を含め全て平文で送信される。このため、Telnet等と同じく危険なプロトコルであり、使用には注意が必要である。
ただし、よりセキュリティの高いSSHやVPNをトンネルして接続することも出来る。また、派生バージョンでは、NTLM認証が可能であったりと、セキュリティ面の強化が図られているものもある。
全てのサーバソフトウェアと同じように、外部からの使用するポートへの通信がファイアーウォールやルーターでブロックされていた場合は、VNCを利用することは出来ない。
VNCループ
以下、いずれも合わせ鏡のような状態を作り出すことによって起こる現象。ただし厳密には、ポート開放など正常な動作を確認するために用いられる場合もある。
- ひとつのマシン上でクライアントとサーバを起動し自分自身に接続した時。
- 2台のコンピュータがお互いにもう一方を操作しようとした場合に、VNCループと呼ばれる現象が起こることがある。マシンAで画面変化があった時、それがマシンBに送信され表示されると同時にさらにマシンBの画面変化としてマシンAに送信され…と繰り返す状態。場合によっては無限ループに陥ることもあり、マシンパワーを消費しコンピュータのフリーズを引き起こす事もあるので注意が必要である。
音声
サウンド出力はVNCで送受信できない(将来的可能性がないわけではない)。
対応OS
- サーバ動作OS
- Windows 98/Me/2000/XP/2003/2008/Vista/7、Mac OS X、Linux、Solaris、Windows CE
- クライアント動作OS
- Windows 98/Me/2000/XP/2003/Vista/2008/7/2008 R2、Mac OS X、Linux、Solaris、Windows CEなどJavaが作動するOS全て、iOS (アップル)。
また、TridaVNC、ChromiVNC、µVNC、WinVNC、UltraVNCなどの本家から派生したものがあり、Palm OS、携帯電話ならBREW上でも対応している。
Mac OS X v10.5では、VNCクライアント「画面共有」及びVNCサーバが内蔵されている。
- VNCクライアントを利用する場合は、Finderのサイドバーの共有に表示されている機器を選択し「画面共有...」を選ぶか、IPアドレスを入力して使う場合は、「/システム/ライブラリ/CoreServices/画面共有("/System/Library/CoreServices/Screen Sharing.app")」を起動する、またはFinderの「移動」メニューから「サーバを経接続...」を選び、サーバアドレスに「vnc://」+ IPアドレスを入力し接続する。
- VNCサーバを利用する場合、「システム環境設定」→「共有」→「サービス」で出てくるサービス一覧から「画面共有」 をオンにするか、「リモートマネージメント」をONにして画面右下にある「アクセス権…」ボタンを押すと出てくる設定パネル内で「VNC使用者が画面を操作することを許可」をオンし、VNC接続のためのパスワードを右の欄に設定する。
VNCの派生ソフト
VNCは1999年に開発されたソフトウェアだが、開発者が所属するAT&T ケンブリッジ研究所の閉鎖に伴いオリジナルのVNCは開発停止。 しかしその後この開発メンバーが新会社を立ち上げ新版を公開、これがRealVNCであり現状の正統なVNCである。 またオリジナル版のソースコードがGPL方式のライセンス下で公開されていたのが幸いし、世界中の多くの開発者が様々な派生ソフトを誕生させている。だが並列的に存在するそれらが個別に開発されている経緯から、その過程で各々の機能の取り込みがしばしば発生し、故に各ソフトの根本的なメリットも混乱に至っているのが現状である。
なお、サーバとクライアントが別のVNCであっても、転送方式さえ同一なら基本的に接続可能である。
- VNC
- 現在は開発停止しているオリジナル。様々な環境用に移植開発されており、その内Windows版はWinVNCとも呼ばれる。RealVNCが後を継いでいる。
- RealVNC
- VNCの正統な後継ソフト。VNCと会社は異なるが開発陣が同一でVNCがRealVNCになったと捉えて問題ない。VNCの時と違い有償の高機能版が存在する。
- TridiaVNC
- VNCにサポート業務を付加した商業向けVNC。Tridia社は2005年に開発・販売ともに終了している。
- ChromiVNC
- 古いMac用VNC。OS Xには未対応。2001年で開発は停止している。
- TightVNC
- 転送方式にオリジナルのTight Encodingを初めて導入した拡張版VNC。Tight Encodingは高圧縮率で低速回線環境でも動作できる反面その分CPUパワーを必要とする。VNC/RealVNCと比べても対応環境が多いのも特徴。
- TigerVNC
- TightVNCの派生。TightVNCの高機能をそのまま引き継いだうえ、OpenGLを利用した高速化を実現している。Fedoraなど一部のLinuxディストリビューションでは標準のVNCクライアント・サーバーソフトとして採用されている。
- µVNC
- マイクロVNCと読む。mVNCとも。VNCの公開ソースを全く利用せずに独自開発したVNC互換クライアントソフト。主に携帯電話向けビューア。ZRLE転送方式や画面の拡大縮小に対応、またSSHクライアントを内包している。µVNCにサーバソフトは存在せず別の派生VNCのサーバ利用を前提とする。また、V2.4.0以降では、動画再生を可能にする独自のZYWRLE転送方法、音声を配信する機能なども内包している。推奨はUltraVNCサーバ。開発・販売は日立システムアンドサービス。2013年9月末日をもって配布および使用停止措置が取られた。
- UltraVNC
- 以前はUltr@VNCとも。なおUltra@VNCは誤り。Windowsに特化し描写の高速化を狙った多機能VNC。ファイル転送や画面拡大縮小、さらにビデオフックドライバによる取り込み高速化などのオリジナル拡張と、他の派生VNCで生まれた転送方式など多くの機能を盛り込んでいる。Windows専用。
- Win2VNC
- クライアントに画面を表示しない特殊なVNC。主に一方のマシン(デスクトップのメインPCなど)にあるキーボード・マウスを使ってもう一方のマシン(サブPCやノートPC)を操作する事が目的。マルチディスプレイを扱うかのように画面端から別のマシンへ移動ができる。
- MultiVNC
- 1対多の接続に特化した特殊なVNC。IT系講習において講師が生徒の画面を確認したり操作する事を目的とする。MultiVNCではクライアントの画面をサーバ側に送るという逆の発想になっている。
- MetaVNC
- アプリケーションのウインドウのみ転送・表示する特殊なVNC。他のマシンにあるアプリケーションをあたかもその場にあるかのように扱うのが目的。Windows2000/XP/Vista版、UNIX/LINUX版、Java版が存在する。例としてLinux上のウインドウ毎にVNCビューアを複数開くことができるのでWindows上にLinux側の必要なウインドウを複数開き、シームレスな操作が可能となる。また、TightVNCのTight Encodingを使えるようになった。
- gtk-vnc
- GTK用のVNCWidgetとして、提供することを目標として、開発されている。このため、VNCビューワを含むアプリケーションを数十行程度でかける程度のAPIが提供されていることが特徴である。
- また、もう1つの特徴として、Firefoxへのプラグインとして機能することが上げられる。
- QEMU
- リモートマシンを制御するためのVNCサーバ機能がQEMUには、含まれている。
- synergy-plus
派生サービス
VNCを使った、商用・非商用のサービス。
中間サーバーによる橋渡しによって、リモート操作する側とされる側を”NAT環境であるか否か”やIPアドレス・ファイヤーウォールなどのネットワークの知識なしに利用できることなどが主な特徴。 従来、ファイアーウォールのポート開放を必要とし、ポートスキャンなどのリスクがあったのに対し、IDによる管理ができるのでセキュリティリスクを管理しやすくする目的もある。
かつてあったサービス
- ハコ箱リモート
- エスケイサイバーパス株式会社が運営していたオンラインストレージサービスHakobako.comの会員制(無料)サービスのひとつ。2004年サービス開始。2005年4月にHakobako.comサービス終了。中間サーバーの停止とともに利用不可となった。
- ちなみにHakobako.comが日本向けに提供していたハコ箱プレーヤーはGOM Playerの日本語版であり、Hakobako.comサービス終了後まもなく、正式に日本語版のGOM Playerがリリースされた。
- ハコ箱リモートもGOM Player同様、LGPLライセンスへの違反が疑われていた。
- Windows向けのみ。
現行サービス
これまでオープンソースで改良されてきたVNCの様々な技術が盛り込まれている。
- CrossLoop
- 2007年サービス開始。サーバーソフトウェアとクライアントソフトウェアが一体型で、リモート操作される側に表示されたランダムな数字を、電話など何らかの方法で操作する側の人に知らせることで接続するのが特徴。
- ランダムな数字は毎回変わるので望まない接続を避けられる。
- インストールから接続までが非常にシンプルなため、初心者でもすぐに使い始められることから、初心者支援のためのVNCという特徴がある。
また、無料のアカウントを作ることで対価を目的としたサービスの提供などができると謳っている。
- ソフトウェアはWindows向けとMacOSX向けがあり、無料版、有料版で機能が違う。
- TeamViewer
- 2008年サービス開始。リモート操作される側に表示されたランダムな数字とパスワードを使って接続するが、毎回変わるわけではないので一人のユーザーが遠隔地のコンピューターを操作したり、サーバーのGUIにアクセスするのに利用可能。
無料のアカウントを使うことでアカウントごとにアクセス権のあるコンピューターを操作できる。
- このほか、ファイル転送やVPNによる接続ができる。
操作される側がデュアルディスプレイの場合、自由に切り替えて操作することもできる。
- ソフトウェアはWindows向けとMacOSX向け、Linux向けがあり、無料版、有料版で機能が違う。
- iPhone/iPad向けアプリやAndroid向けアプリもあり、リモート操作する側として機能する。
- LogMeIn
- ブラウザ経由でリモート操作を行えるサービス。常駐するクライアントアプリさえインストールしておけば、サーバー側のIP変更などに影響されず遠隔操作を簡単に行える。ソフトウェアはWindows、MacOSX向けが無料配布されている。また、ファイル送信などに対応した有料版もある。そして、Android向けなどのスマートフォン用クライアントも販売されている。なお2014年1月をもってlogmein freeによる無償接続サービスは終了し、全てが有料化した。
- synergy-plus
関連項目
- RFB Protocol
- Wake-on-LAN
- リモートデスクトップ
- Apple Remote Desktop - Mac OS X向けのVNCベースの複数サーバの同時管理機能を備えたリモート管理ツール
- Remote Desktop Protocol(RDP) - Microsoft Windowsのリモートデスクトップ
- PC Anywhere - シマンテック社のリモートコントロールソフトウェア
- NetOp - リモートコントロールソフトウェア
- WinShare - NECのソフトウェア
- IgRemote - DirectXとGDI+を利用したリモートデスクトップ
- リモートコントロール
- VirtualGL
- Splashtop Streamer - リモートデスクトップソフト「Splashtop」がIntel「Sandy Bridge」にバンドル -INTERNET Watch
外部リンク
- RealVNC Ltd.
- UltraVNC
- Bozteck VNC
- VNC使い方