Virtual Network Computing(ヴァーチャル・ネットワーク・コンピューティング、略称VNC)は、ネットワーク上の離れたコンピュータを遠隔操作するためのRFBプロトコルを利用する、リモート操作用ソフトである。VNCはクロスプラットフォームなソフトウェアとして開発されているため、インストールされているマシン同士はOSなどのプラットフォームの種類に依存することなく通信する事が出来る。
VNCの最初のバージョンは1999年にAT&Tによって開発されたが、オリジナル版のソースコードがGPL方式のライセンス下でオープンソースとして公開されているため、現在では様々な派生ソフトが誕生している。
目次
1 概要
2 デメリット
2.1 セキュリティ
2.2 VNCループ
2.3 その他
3 メリット
4 対応OS
5 VNCの派生ソフト
6 関連項目
7 外部リンク
//
このソフトウェアはサーバソフトと、クライアント(もしくはビューア)ソフトの2つに分かれている。 操作される側でサーバソフトを起動しておき、遠隔操作する側はクライアントソフトを起動させ接続、遠隔操作を行う。
VNCで通信プロトコルとして使用されるRFB Protocolは非常に簡素なプロトコルで、サーバ側はピクセルデータ化した画面を小さな長方形に分け、位置を指定してクライアントに送信するだけである。しかし、この方法は非常に単純であると同時に、大きな帯域幅を使用する。そこで、帯域幅の削減のために様々な方法が編み出された。様々なエンコード形式やデータ圧縮がこれに該当するが、最も単純な方法は、前の送信と比較して変更された部分のみを送信する方法である。これはマウスポインタの移動のみが行われた場合などには非常に有効だが、全体的な変化の大きい動画再生をしている画面などを送信するには適していない。それはネットワークが十分に高速であっても変わらない。なお、このような拡張プロトコルを使用するには、サーバとクライアント双方のソフトウェアがその形式に対応している必要がある。
デフォルトではTCPの5900から5906までのポートを使用する。これはX Window Systemのディスプレイ番号(0から6)に対応している。また、ウェブブラウザ上で動作するJava版のクライアントは、既定で5800から5806までのポートを使用する。これらは設定によって変更可能である。
Windowsでは基本的にシングルセッションOSのため、5900番以外のポートを使用することは少ない。ただし、ターミナルサービスと併用して先述のような環境を作ることも可能である。
通常、VNCは通信に暗号を用いないため、パスワード等を含め全て平文で送信される。このため、Telnet等と同じく危険なプロトコルであり、使用には注意が必要である。
ただし、よりセキュリティの高いSSHやVPNをトンネルして接続することも出来る。また、派生バージョンでは、NTLM認証が可能であったりと、セキュリティ面の強化が図られているものもある。
全てのサーバソフトウェアと同じように、外部からの使用するポートへの通信がファイアーウォールやルーターでブロックされていた場合は、VNCを利用することは出来ない。
以下、いずれも合わせ鏡のような状態を作り出すことによって起こる現象。ただし厳密には、ポート開放など正常な動作を確認するために用いられる場合もある。
ひとつのマシン上でクライアントとサーバを起動し自分自身に接続した時。
2台のコンピュータがお互いにもう一方を操作しようとした場合に、VNCループと呼ばれる現象が起こることがある。マシンAで画面変化があった時、それがマシンBに送信され表示されると同時にさらにマシンBの画面変化としてマシンAに送信され…と繰り返す状態。場合によっては無限ループに陥ることもあり、マシンパワーを消費しコンピュータのフリーズを引き起こす事もあるので注意が必要である。
サウンド出力はVNCで送受信できない(将来的可能性がないわけではない)。
当項目冒頭にもあるとおり、VNCはマルチプラットフォームでのGUIの遠隔操作が可能である。Linuxの操作をWindowsから、あるいはその逆でWindowsからLinuxの操作など、非常に自由度が高い。派生ソフトのMetaVNCにおいてはLinux上のウインドウ毎にVNCビューアを開くことができる。
また、W-ZERO3などのWindows Mobile上からVNCを利用して自宅のPCを操作し、ファイルの送受信、テレビ録画予約などの用途が広がる。同様にWi-Fi通信ができるPDAにWindows CEやLinuxを搭載したものでも同様の可能性がある。
CPU切替器という商品があり、複数台のPC、複数のOSを一組のモニタ、マウス、キーボードで操作できるが、これをVNCで代用することもできる。
PC操作を教える側、教わる側が傍にいなくても、実際に操作して見せて説明ができる。これに特化したのがMultiVNCと言えるが、他の派生VNCでも充分な場面が多い。
ネットワーク管理者が、施設内の複数のPCのメンテナンスを行う際、時間やコストを削減するのに役立てる場合がある。
外出先から、あるいは前述の管理者がVNCを利用する場合、電源の切れているPCはWake-on-LANを利用することで電源を入れることができる。こういった複合的な手段で多様な可能性がある。
対応OS
サーバ動作OS
Windows 98/Me/2000/XP/2003、Linux、Solaris、Windows CE
クライアント動作OS