開発エンジニアのためのiPhone活用法(5) ―― iPhone用のVNCクライアントでパソコンを遠隔操作する
●Mocha VNCのインストールと設定
Mocha VNCはApple Storeからダウンロードできます.評価版と製品版がありますが,筆者としては製品版をお勧めします.起動後,右上のツール・バー上の[Connect]ボタンから設定メニューを開き,上から順に次の情報を入力します(図5,図6).
- VNC Server IP adress
VNCサーバが動作しているIPアドレス(192.168.0.2)
- VNC Server Port
VNCサーバで使用するポート番号(5901)
- VNC Password
VNCサーバのログイン・パスワード(EMNET)
- Name(Optional)
VNCサーバのログイン時の名前.入力しない.
これ以外の設定項目もありますが,設定不要です.これらの情報を入力したあと,さらに右上のツール・バー上の[Connect]ボタンを押すとVNCサーバへの接続が開始され,数秒後にはiPhone上にサーバとなったWindowsパソコンの画面が表示されます.
もしうまく動作しない場合は,Windowsパソコン上のセキュリティ・ソフトウェアによってポートが塞がっている,もしくは無線LANのルータがポートの使用許可を出していない,などの理由が考えられます.検索エンジンなどを駆使して問題を解決してください.
●VNCを使う上での注意点
1) 情報は暗号化されずに送受信される
VNCの情報はTCP層を用いて送受信されますが,この情報は暗号化されていません.つまり,ユーザ名やパスワード,画像などの情報はパケットの監視を行う機器によって読み取れるわけです.また,サーバ側ではポートを開いていることで,セキュリティに対して脆弱になります.
自宅内やファイアウォール用のルータなどで外部と遮断されたローカルなネットワーク環境の中で使うのであれば,暗号化については特に考慮しなくてもよいでしょう.しかし,外出先で使う場合には注意が必要です.
対策方法としては,SSH(Secure Shell)を使ってVNCで使用するポートのトンネリングを行い,暗号化された情報を送受信する方法が一般的です.なお,SSHを使ったポートのトンネリング操作についてはFreeBSDのWebサイトを参照してください.
2) 画像データの受け渡しであること
VNCの画面情報は変更があった部分だけを切り取って,ビットマップ形式でクライアント側に送られます.その際,画面上のウィンドウを開閉したり,解像度を上げることで情報量は増加します.例えば,1280ピクセル×1024ピクセル(UXGA)の画像データで32ビット・カラー・モードのときは,1画面全体のデータ量は1.2Mバイトを超えます.そのため,データ転送のトラフィックの増加とともに,帯域の細いEDGEサービスを使っている場合などには,画面がいつまでたっても出てこないという問題があります.
そのようなときには,実際の表示画面の解像度を小さめにする,色を8ビット・カラーや16ビット・カラーにする,全画面の書き換えは行わないようにする,などの方法で,データ転送量を小さくします.ただし,パソコンのグラフィックス機能によっては,このような方法に対応できない場合があります.
●アプリケーションのリンク先,参考リンク
(1) MochaSoft;Mocha VNC,http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284981670&mt=8
(2) MochaSoft;Mocha VNC Lite,http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284984448&mt=8
(3) ReadPixel;RemoteTap,http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=295043998&mt=8
(4) Wikipedia-US;VNC(Virtual Network Computing),http://en.wikipedia.org/wiki/Virtual_Network_Computing
(5) Chern Lee;FreeBSDハンドブック 14.10.7. SSHトンネリング,http://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/openssh.html
(第6回に続く)
いくら・まさみ
◆筆者プロフィール◆
井倉将実.代表取締役兼学生.最近はもっぱらMAC+iPhoneで,OpenGLアプリ開発ばかりしています.