Mの憂鬱


VNCでパソコンを遠隔操作する

このページは以下のような文章構成になっています。

  • 概論
  • ソフトの紹介
  • 操作される側の設定
  • 操作する側の設定
  • Webブラウザで操作する
  • ルータ接続での特殊な設定(1台のみVNCを適用)
  • ルータ接続での特殊な設定(複数台VNCを適用)
  • ルータ接続での特殊な設定(ブラウザ閲覧の適用)

僕の家には3台パソコンがある。スペックを書くほどの代物でもないので、とりあえずミルちゃんキクちゃんナンダロウくんという名前にしておこう。それをRouter(読み方ルータ)というこれもいわばパソコンなのだが、そこにLANで収束させてネットに繋いでいる。

ファイルのやり取りは、Windows OSなら必ずデスクトップにあるネットワークコンピュータアイコン(Windows 2000ならマイネットワーク)を使って行うが、そう頻繁にファイルをやり取りするほどのことはしない。むしろ、修正ソフトのダウンロードやインストールなどのメンテナンスをする事の方が多いため、結局該当パソコンの前に鎮座してインストールや再起動作業をしなくてはならない。
出来ることなら1箇所のパソコンから全てのパソコンの遠隔操作が出来ないものかと考えていたところ、実はそういうソフトがあるのだ。

他のパソコン画面を呼び出した状態

上の画像は、パソコン名ミルちゃんからナンダロウくんのデスクトップを表示させたもの。ミルちゃんOSはWindows 2000でナンダロウくんはWindows 98。表示させたナンダロウくんのデスクトップ画面をマウスで操作すると、実際にナンダロウくんのマウスを動かしていることになる。つまり、パソコンの遠隔操作が出来てしまうのだ。
これだけの大画面をリアルタイムに表示させるだけに転送と画像処理が追いつかない部分もあり、込み入った作業をすることは出来ない。しかし簡単な設定変更やソフトのインストールなどは、いちいちそのパソコンの前に行かなくても遠隔操作でやってのけるのである。操作されるパソコンの電源を切ることも再起動も簡単に出来てしまう。実際にナンダロウくん側に回って画面を見ていると、マウスカーソルが勝手に動くので実に面白い。乗っ取られてしまっている。
良く言えば遠隔操作、悪く言えばクラッキングである。


ソフトの紹介

VNC Virtual Network Computing
フリーソフト。動作対象OSはwindows Mac Linuxと幅広い。下記に紹介したURLからDownloadコンテンツに移動して連絡先を記入。該当OSのソフトをダウンロードする。ファイルサイズは1MB程度だったと思う。インストールは一般的な動きをするので、英語に弱くても特に気にすることはない。

VNC配布サイト。
http://www.uk.research.att.com/vnc/
ソフトのダウンロード。(ダイレクトリンク)
http://www.uk.research.att.com/vnc/dist/vnc-3.3.3r9_x86_win32.zip
直接Windows版VNCをダウンロード出来るように設定しましたが、一度は本サイトをチェックしてください。

インストールと設定に関する詳しい説明は、別途ページを用意しました。遠隔操作するパソコンと遠隔操作されるパソコン両方にこのソフトをインストールしなければ何も始まらない。厳密には、操作する方は専用ソフトを使わなくてもWebブラウザで動いたりする。詳しい話は後回し。
インストールがきちんと出来たら、スタートアップメニューVNCという項目が増えて下層にアイコンが並ぶ。

*
スタートメニューからVNCフォルダの下層を表示させたもの。

似たようなアイコンが並んでいるが、原理は実に簡単。


Run WinVNCアイコン操作される側の設定

タスクバーに収まったVNC

操作される側のパソコンに、緑のアイコンRun WinVNC (App Mode)を立ち上げる。するとタスクバーに緑のアイコンが表示される。

VNCの設定画面

タスクバーに収まっている緑のアイコンをダブルクリックすると、設定画面が出てくるのでパスワードを用意してOKボタンを押す。再びタスクバーに表示している緑のアイコンの上に(クリックせずに)マウスカーソルを乗せてみると、ネットに繋がっていれば、4つに区切られた255までの数字の集団、IPアドレスが表示される。例えば61.115.93.42など。これで操作される側の設定は完了。
ルータ接続環境のパソコンだと192.168.0.2とかになってるかも。ルータ接続の方は少し特殊な設定をするので、あとで説明する。


VNCViewerアイコン操作する側の設定

スタートメニューからVNCフォルダの下層を表示

操作する側は、赤いアイコンRun VNCviewer (Listen Mode)を立ち上げる。すると、タスクバーに赤いアイコンが表示される。それをクリックして操作したいパソコンのIPアドレスを入力する。

IPアドレスを入力する画面

先ほどの例を挙げるなら、61.115.93.42など。ダイアルアップ接続の環境は一旦回線を切れば毎回IPアドレスが変わるので、その都度確認しなくてはならない。

パスワードを入力する画面

そのIPアドレスが実在するものならば、今度はパスワードを聞いてくる。それは操作される側で用意したパスワードを入力する。入力が正しければ、操作される側の解像度に合わせた大きなウィンドウが出てくるはずだ。
これで遠隔操作のはじまりである。


Webブラウザで操作する

操作される側はVNCをインストールしておく必要があるが、操作する側はVNCをインストールしなくてもWebブラウザで操作できるのだ。ブラウザのアドレスバーに以下のルールで入力する。

http://操作される側のグローバルIP:5800/

例えば、操作される側の接続中のグローバルIP61.115.93.42だったとすれば、

http://61.115.93.42:5800/

もうこれでパスワード入力を求める画面に切り替わる。もちろん操作される側には緑のアイコンを立ち上げておく必要がある。こんな簡単に出来て良いのだろうか?ちょっと怖くなってきたぞ。

Webブラウザでパスワードを求める画面
グローバルIPが実在するものならばパスワードを求める画面が表示されるはずだ。

まず自宅のパソコンでVNCを起動させておく。そして今のグローバルIPをメモって外出する。あとはどこに居ようが、ネットに繋げることが出来るならブラウザさえあればいつでも自宅パソコンを操ることが出来る。自宅のパソコン環境を、外出先で再現しようという発想が無くなる。メールのコピーをサーバーに置いて受信するとか、何かのDATAを外出先で見るために予めFTPでアップしておくとか、大きなファイルのダウンロードを出かける前に済ませておかなくてはならないとか、そういう作業をすべて省略できる。いざ必要になったときに初めて自宅パソコンに接続して用事を済ませれば良いのだ。Webブラウザでの表示色はVNCを使うよりも色数が少ないようなので、出来ることならVNCを入れたほうがマシ。

WebブラウザでVNCの操作される側を表示させた画面
VNCが無くてもブラウザ上で操作できる状態

画面は解像度に対して等倍率で表示するので800×600画面で1280×1024画面を見ようとすると、はみ出てしまうが、スクロールバーも用意されており設定項目に縮尺変更も出来る。
前述したようにVNCが表示する画面は実にぎこちない動きをするので、込み入った作業をする目的では使えそうにない。確認できた最高の転送速度は、10baseTで構築されたLANの10M。それでもまだぎこちなさは残る。100baseTならかなりスムーズに触れるかもしれない。ISDNの64K同士は操作は何とかできるが再表示に時間がかかり、モデム56Kとなると見るだけで精一杯で遠隔操作というレベルでは使えない。これからの転送速度の発展によってVNCの利用方法も変化するだろう。光通信が一般化すれば、何台ものパソコンに同じソフトをインストールする必要はなくなるのではなかろうか。

とりあえず思いついた遊び方を挙げてみよう。

画面上じゃないと話が進まない話をする。
モニターに表示されたDATAに対して大人2人がモニターの前で顔をくっつけて見なくて済む。
異OSのブラウザ表示と動作確認。
一度はリナックスとやらを体験しとうございます。
遠隔パソコン教室。
質問攻撃を防げたり。目の前のカーソルが動くから分かりやすいかと。
ネット会議。
ICQと併行してやってみる。
エラーが出たときに詳しい人がその原因を調査・説明する。
自分が困ったときは、言葉足らずの報告をするよりも詳しい人に見てもらう方が早い。ついでに直して欲しい。
メンテナンス作業。
1台で複数台のパソコンのメンテなどに。1人が同時に他のパソコン2画面以上を呼び出すことも可能。外出先からデフラグやらスキャンディスクやらを起動させてみたり。
ウィルス駆除の手伝い。
対岸の火事。
そのパソコンにしか入ってないソフトを起動させる。
ハードプロテクトのかかったソフトを触ってみたり、ICQを触ってみたり、ローカルにあるファイルをFTPでアップしてみたり。

VNCは、使い方を誤れば実に恐ろしいソフトに化けることも認識しておきたい。IPVNCで設定したパスワードさえ分かれば、遠隔操作で該当パソコンを簡単に再起不能にさせることが出来るからである。たぶん、自宅(他サーバー)から企業や学術関係サーバーにVNCを使ってアクセスする許可は下りないだろう。その逆は可能と思われる。
なお、操作されているときの緑のアイコンは白色部分が黒色に変わる。用も無く、緑のアイコンを立ち上げたままにしておくことは薦められない。

以下にVNCで出来ないことも書いておこう。

実はこの手のソフトが目新しいものか?と言うとそうでもなく、1998年からVNC自体は存在しており、現在でもtelnetというコマンド入力式CUIの操作ツールはある。例えば、サーバー管理者が自宅から会社にあるパソコンを再起動させるという使われ方をしているようだ。VNCはtelnetのGUI版みたいなものであり、接続に成功すれば操作方法が直感的である点で初心者にもとっつきやすいソフトかと思われる。実用的かどうかは別として、パソコンを相互に操ったり、1台のパソコンを経由して他のもう1台のパソコンを操るみたいなことも出来ることは確認している。Windows XPからは、この手の機能がリモートアシスタンスという名前で装備されているようだ。

会社と自宅間や複数の異なるパソコンを触る必要のある方なら、是非試していただきたいソフトである。


ルータ接続での特殊な設定(1台のみVNCを適用)

ここから先の説明は、ルータ接続環境の方を対象にVNCを適用させる方法です。

ルータ環境では、外部接続とLAN内のパソコンが1対1の関係にならないので、外部からVNCを使ってLAN内のパソコンを見ることができない。というか、グローバルIPは1つなのに複数あるLAN内のどのパソコンを表示させるのかを1度も指定していないので、表示できなくて当然である。

ルータ接続環境は、LAN内だと簡単にVNCを繋ぐことができる。標準的な設定ならルータのIPアドレスが192.168.0.1で、以降パソコンの台数分にあわせて192.168.0.2/192.168.0.3/192.168.0.4IPアドレスが順に振られているはずだ。先ほど実験をしてみたら、ローカルIPではなくパソコン名を指定してもVNCは認識するようだ。
しかし、ネットを経由した外部からのアクセスの場合、ルータがシャットアウトする。そこで、ルータの設定で外部からローカルIPへの接続を許可する設定をしなくてはならない。

以下の画面はYAMAHA NetVolante RTA52iの設定。設定方法は各ルータによってまちまちだが、要はポート5900をローカルIPに開放してやることが目的。

静的マスカレードの設定画面

2行目にtcp 5900 192.168.0.2という項目がある。これがVNCの為にポート5900を開放してローカルIP192.168.0.2のパソコンと外部接続を許可する設定。ローカルIPはパソコンによって異なるので、操作される設定で説明したように緑のアイコンがタスクバーに収まっているときにマウスで確認のこと。
あとは今接続しているグローバルIPを操作する側で指定すれば完了。


ルータ接続での特殊な設定(複数台VNCを適用)

ここから先の説明は、ルータ接続環境でかつLANの複数台のパソコンにVNCを適用させる方法です。

ルータ管轄の各パソコンにVNCを振り分けたい場合は、1台のパソコンに対して1つづつポートを開放し、なおかつ各パソコンに組み込んだVNCのプロパティにDisplay Number1から順につけてやります。番号は飛んでも構わない。以下に挙げた画面はAutoにチェックが入ってる。それを解除して番号を振ること。

VNCの設定画面

ポートは59015902の順に開放する。数字が飛んでも構わない。

ナンダロウくんを例に挙げてみよう。
ナンダロウくんは、プライベートIP192.168.0.4にしてあるので静的マスカレードの設定でtcp 5901 192.168.0.4とする。次にナンダロウくんのWinVNCを立ち上げてDisplay Number4と設定して完了。
今後のアクセス方法は192.168.0.4ではなく192.168.0.4:4と入力すればよい。外部からのアクセスの場合はグローバルIP:4を追記すればよい。
今回の設定環境で実際に外部からアクセスをする例を挙げる。今接続しているグローバルIP61.115.93.42としたら、そのまま61.115.93.42と入力すればミルちゃんを呼び出すことになり、61.115.93.42:4と入力すればナンダロウくんを呼び出すことになる。一見ややこしそうだが実に理にかなった設定だと思う。

以下に覚えやすいポートとDisplay Numberの振り分け表を用意してみた。

外部接続とLAN内のパソコンが1:xの関係
ローカルIP ネットワークで認識するパソコンの名前 ルータ側の設定
ポート番号
VNC側の設定
Display Number
192.168.0.1 ルータが使ってるので無し - -
192.168.0.2 ミルちゃん tcp 5902 2
192.168.0.3 キクちゃん tcp 5903 3
192.168.0.4 ナンダロウくん tcp 5904 4

ローカルIPDisplay Numberの数値を同じにしたところがポイント。別に同じ値にすることもないが、この方が覚えやすいだろうという程度のもの。1台づつポートを開放しなくても、5900+Display Numberでも接続できるとの噂を聞いた。その実験はまだやってないので未確認。

外部接続とLAN内のパソコンが1:1の関係
ローカルIP ネットワークで認識するパソコンの名前 ルータ側の設定
ポート番号
VNC側の設定
Display Number
192.168.0.1 ルータが使ってるので無し - -
192.168.0.2 ミルちゃん tcp 5900 Auto
192.168.0.3 キクちゃん 設定しない Auto
192.168.0.4 ナンダロウくん 設定しない Auto

ルータ接続での特殊な設定(ブラウザ閲覧の適用)

例のごとく、ルータ環境だとこれまた設定変更しないとブラウザ上に表示させることが出来ない。ブラウザ上に表示させるためには、ポート5800を開放する。前例に習って、192.168.0.4Display Number4とする。ポート番号は5800Display Numberの合計値で良いらしく、個別に開放する必要はない。
現在接続中のグローバルIP61.115.93.42とすれば、

http://61.115.93.42:5804/

VNCを1台だけ適用させている環境では

http://61.115.93.42:5800/

これでパスワード入力画面になる。VNC無しでこれが出来てしまうから凄い。

(VNCでパソコンを遠隔操作する 2002年1月6日)


最終更新日 2002年02月06日
(C) Copyright 1998 Mitsuo.K All Rights Reserved