Virtual Network Computing (VNC) について
Virtual Network Computing(VNC)は、ネットワークを介して遠隔にあるコンピュータのデスクトップ環境を操作するためのソフトウェアです。VNCはRFB(Remote Frame Buffer)プロトコルを使用し、
クロスプラットフォームに対応しているため、異なる
オペレーティングシステム(OS)を搭載したコンピュータ間でも相互に接続し、操作することができます。
VNCの仕組み
VNCは、
サーバソフトウェアとクライアントソフトウェアの2つの要素で構成されています。
- - サーバソフトウェア:遠隔操作される側のコンピュータにインストールされ、画面の表示や操作を受け付ける役割を担います。
- - クライアントソフトウェア:遠隔操作を行う側のコンピュータにインストールされ、サーバ側の画面を表示し、操作をサーバに伝えます。
操作の流れは、まず遠隔操作される側のコンピュータで
サーバソフトウェアを起動し、遠隔操作を行う側のコンピュータでクライアントソフトウェアを起動して接続を行います。クライアント側からの操作は、
サーバ側に送られ、
サーバ側で処理された結果がクライアント側に返されることで、遠隔操作が実現されます。
RFBプロトコル
VNCで使用されるRFBプロトコルは、非常にシンプルなプロトコルです。
サーバ側は画面を小さな
長方形の領域に分割し、ピクセルデータとしてクライアントに送信します。この方式は単純である一方、ネットワーク帯域幅を大きく消費するという欠点があります。そのため、さまざまな
エンコード形式や
データ圧縮技術が用いられています。例えば、画面全体ではなく、前の送信から変更された部分のみを送信することで、帯域幅の消費を抑える工夫がされています。しかし、
動画再生など、画面全体の変化が大きい場合には、ネットワーク速度が十分でもパフォーマンスが低下する可能性があります。
ポート番号
VNCは、デフォルトではTCPの5900から5906までのポート番号を使用します。また、ウェブブラウザ上で動作する
Java版クライアントは、5800から5806までのポートを使用します。これらのポート番号は設定で変更可能で、通常はポートごとに独立した仮想デスクトップセッションが提供されます。
メリット
- - クロスプラットフォーム対応: 異なるOS間での遠隔操作が可能です。
- - 柔軟な利用: LinuxをWindowsから、またはWindowsをLinuxから操作するといったことが可能です。
- - 多様な活用: ファイル送受信、テレビ録画予約、PC操作の教育、複数PCの管理など、さまざまな用途に活用できます。
- - 省コスト: 複数PCをVNCで操作することで、CPU切替器の代わりとして利用でき、コスト削減につながる場合があります。
- - Wake-on-LANとの連携: 電源が切れているPCも、Wake-on-LANを利用して遠隔から起動できます。
デメリット
- - セキュリティ: オリジナルのVNCは通信を暗号化しないため、パスワードなどの情報が平文で送信される危険性があります。SSHやVPNによるトンネル接続や、TLS暗号化に対応した派生バージョンを使用することで、セキュリティを強化できます。
- - VNCループ: 同じマシン上でクライアントとサーバを起動したり、2台のコンピュータが互いを操作しようとしたりすると、無限ループに陥り、システムがフリーズする可能性があります。
- - 音声: 音声の送受信はVNCではサポートされていません。
VNCの派生ソフトウェア
VNCの
ソースコードがGPL
ライセンスで公開されたことにより、様々な派生ソフトウェアが開発されました。以下に代表的なものをいくつか紹介します。
- - RealVNC: VNCのオリジナル開発チームが設立した会社が開発する、VNCの正統な後継ソフトウェア。
- - TightVNC: 高い圧縮率で低速回線でも動作可能なTight Encodingを導入したVNC。
- - TigerVNC: TightVNCをベースに、OpenGLによる高速化を実現したVNC。
- - TurboVNC: OpenGLを使用した3Dアプリケーションの画面転送に対応したVNC。
- - UltraVNC: Windowsに特化し、高速化や多くの機能を追加したVNC。
- - noVNC: Webブラウザ上で動作するVNCクライアント。
- - gtk-vnc: GTK用のVNCウィジェット。
- - LibVNC: VNCクライアント/サーバを組み込むためのC言語ライブラリ。
- - QEMU: リモートマシン制御のためのVNCサーバ機能を内包。
派生サービス
VNCを基盤とした、商用・非商用サービスも存在します。
- - CrossLoop: リモート操作される側に表示されたランダムな数字を、操作する側に伝えることで接続するサービス。初心者向けの使いやすさが特徴。
- - TeamViewer: 常に同じパスワードで接続できるサービスで、遠隔地のコンピュータを継続的に操作する際に便利。
- - LogMeIn: ブラウザ経由でのリモート操作を可能にするサービス。
その他のVNC関連ソフトウェア
- - ChromiVNC: Classic Mac OS用VNC。現在は開発停止。
- - TridiaVNC: 商業向けVNC。現在は開発・販売終了。
- - µVNC: 携帯電話向けのVNC互換クライアント。独自技術で動画再生や音声配信に対応。
- - Win2VNC: クライアントに画面を表示しない特殊なVNC。キーボード・マウス共有用。
- - MultiVNC: 1対多の接続に特化したVNC。教育現場での利用を想定。
- - MetaVNC: アプリケーションウィンドウのみを転送・表示する特殊なVNC。
補足
- - VNCは、Windows、macOS、Linux、Solarisなど、様々なOSに対応しています。
- - macOSにはVNCクライアントとサーバ機能が内蔵されています。
まとめ
VNCは、遠隔操作を可能にする強力なツールであり、多様な用途で活用できます。ただし、セキュリティには注意が必要であり、用途に応じて適切なソフトウェアや設定を選択することが重要です。