VNCで遠隔サポート

 ちょっとそこまでとはいえない距離でPCに不慣れな人がいる。
 そんな人から電話がかかってきて「なんか調子悪いんだけどどうしたらいい?」などと質問の電話が来た。
 いろいろ説明を聞くが、いかんせん相手は基本操作さえままならない(そのくせネット通販にはまっていたり面白そうなゲームやユーティリティをダウンロードしていたりと意外にPCで遊んでいる)ので、本来の用語ではなくその場で勝手に作った用語で話をしてくる。おまけに問題となっているソフトは自分が使ったことのないやつなので何がなんだかわからない。「そんなん知らん」と冷たく断れればいいが、そこはそれ、世間のしがらみというもので無下にできない。
 電話ではなかなかラチが明かないというのに時間は確実に経過していく。
 相手の画面さえ見えれば、ついでに操作もできれば・・・。

 そんな経験はないだろうか。
 ない人はこの先を読んでも意味がないので大切な時間をもっと有意義なことに使って欲しい。
 ある人は多少は楽ができるかもしれない。

VNCとは

 いきなりVNCとか言われてもそんなの初めて聞くという人も多いだろう。
 そんなことはとうに知っているという人はこんなところは読み飛ばして欲しい。

 Virtual Network Computer の略で、ネットワーク先のコンピュータの操作を手元でやってしまおうというものである。
 老舗といわれているのがRealVNCで、いろいろなOSに対応している。しかしながらかなり反応が鈍い。
 今回はWindows系に限定してUltraVNCを使う。

 WindowsXP PROであればリモートデスクトップという機能があって、遠隔操作もできる。しかも他のVNCと違ってWindows専用なので反応もよい。
 操作される側はXP PROでないといけないが、操作する側はXPのCDに入っているソフトをインストールすることで可能となる。
 詳細はネットで検索すればいくらでも出てくるのでここでは省略。

 通常VNCは操作される側がサーバーとなり、操作する側がクライアントとなる。
 サーバー側はブロードバンドルーター等の設定で使用するポートなどを開け、そのポートにアクセスしてきたデータをLAN内にあるサーバーに振り分けるよう設定をする必要がある。
 外部のPCから自宅のPCを操作する(自宅PCがサーバーとなっている)場合は事前に自宅の設定を行なっておけばよいが、PCの操作も不慣れでネットワークに関してはほとんど知らないと思える相談者を相手にこの設定をさせるのは本来の問題を電話で解決するよりも苦痛だろう。
 そんなときに相手に設定をさせることなくリモート操作をする方法があるのだ。

 XPにはリモートアシスタンスというのもあるが、なんとなく使い方がややこしそう(やっていることはここで説明するものとそれほど変わらないらしい)のと、環境が限られる(双方ともXP限定とか使用するポートがわかりにくいとかポートの変更が簡単にできないとか)のが難点。
 しかしながら、相手に操作を教えながら作業を進めるという点ではこちらのほうがいいかもしれない。
 VNCは一方的に操作するのが前提であるのに対し、リモートアシスタンスはコミュニケーションを取りながら自分で操作を行なうものらしい。
 詳細はネットで検索すればいくらでも出てくるので省略。

Ultra VNC SC

 SCとはSingle Clickの略。ほとんどの場合はダブルクリックなのだがそれは置いといて、ワンアクションで接続ができるという意味である。

 先程「相手に設定をさせることなく」と書いたが、なぜそのようなことが可能なのか。
 サーバー側が設定しないことには通信ができないのではないだろうか。

 簡単に説明すると、サーバー側とクライアント側の立場を逆転させているのである。
 通常はサーバー側が相手の通信を待ち構えているのでポートを開けている。(複数の玄関があるアパートのVNC用の玄関だと思ってくれ)
 そこへクライアントが尋ねてくるのだが、当然クライアントはそのアパートの住所(URLとかIPアドレスとかいうたぐい)も知っているしどの玄関かも知っている。さらに玄関の鍵(パスワード)も持っている。
 これで問題なく通信ができるのだが、立場を逆にするとどうなるのか。

 クライアント側が住所と部屋番号をサーバー側に教えてサーバー側から尋ねてくるのを待つのである。これをリッスンモードという。
 サーバー側は普段自分が使っている玄関を出て住所をたよりにクライアントの部屋を訪ね、無事たどりついたらそれぞれの玄関と経路を使って通信を始めるのである。
 クライアントがサーバーみたいな動作をしているというわけだ。

 SCはURLとかIPアドレスとポート番号、それとサーバープログラムを同梱したファイルをメール等で相手に送ることからスタートする。
 こちらがクライアントソフトを指定ポートでリッスンモードで起動しておき、相手がサーバーソフトを起動することで通信が開始するため、不用意に関係ない人と接続してしまうのを避けることができる。
 こちらが常時リッスンモードで起動してあった場合、ふいに他の人のPCが見えたりすることが無いとは言い切れないかもしれないが、わざわざ自分のPCを覗いてくださいとアクセスしてくる人は非常にまれだと思える。
 それでもまぁパスワードは無いようなので、ポートくらいは変更しておいた方がよいだろう。

Ultra VNCのインストール

 まずはVNCをインストールしてLAN内での動作を確認する。
 LAN内での基本動作を確認したら、とりあえずポート番号を変更し、DSMpluginを使用して経路の暗号化を行なっておいた方がよいだろう。
 次にインターネット経由での動作の確認を行なう。
 VNCを使ってサポートをしようという人は、VNCのインストールとセットアップくらいはできて当然である。(ということにして説明の手を抜く)
 ポイントとしてはファイヤーウォールやブロードバンドルーターの設定でVNCで使うポートを開けておくことだろう。LAN内でうまく動いているのにインターネット経由だと接続しないというのはほとんどがこの辺に原因がある。

Ultra VNC SCを作る手順

 まずはここにアクセスしてcustom.zipをダウンロードする。
 要はこのページの説明を読めばすべて解決なのだが、「英文を見ただけで難しそう」と感じる人が多いので手順を説明しておく。
 けど、英文を読める人がみんな難しいことを理解できるのであれば、アメリカ人はもっとまともな国民になっているはずだし、日本語は英語よりも難しいということなので日本語が使える日本人はもっと難しいことができるはずなのである。
 ということでびびる必要はないのだ。できればちゃんと原文を見て欲しい。
 全部を正確に訳す必要なんかないのである。自分の知っている単語をつなぎ合わせて文章を予想する、どうしてもわからない単語は辞書ソフトで調べる。場合によってはインターネット上の翻訳ページで微妙な日本語に変換してみてもいい。

 次にこいつを展開して出てきたhelpdesk.txtを書き換える。
 その他のファイルも必要に応じて変更したり削除したりする。
 そして書き換えたファイルをここにアップロード(というのか?)すると、自動的にUltra VNC SCができあがるので、それをダウンロードする。
 ちなみにこのページのIDとパスワードはfooとfoobarである。

 できあがってきたファイルをメール等で相手に渡し、こちらはリッスンモードでViewerを起動しておくと相手が送ったファイルを実行した時点で接続して操作が可能となるのである。

custom.zipの中身

 custom.zipの中身を簡単に説明しておく
 background.bmp
背景の画像である。デザインにこだわらなければそのままにするか削除してもよい。

 helpdesk.txt
接続情報を記述するファイル。次で説明する。

 icon1.ico、icon2.ico
いわゆるあいこんです。

 logo.bmp
起動した時に表示するロゴ。そのままでもなくてもよい。

 rc4.key
DSMpluginを使用して作成した暗号キー。当然自分の環境で作成したものと置き換える。暗号化をしないのならば必要ない。
作り方は先のページの下のほうに書いてあるので、それを参照すれば簡単にできる。
説明は英語だが、Ultra VNCを設定できた人であれば絵を見ればなんとなくわかるだろう。
ポイントはMSRC4Plugin.dsmをPluginフォルダからVNCViewer.exeのあるフォルダにコピーしておくことくらいか。

helpdesk.txtの編集

[TITLE]セクション
 そのままタイトルの文字を入れる。デフォルトはUltraVnc SC
[HOST]セクション
 1行目は表示される文字、2行目は接続情報。デフォルトは
Internet support
-connect 192.168.1.102:5500 -noregistry
 となっているが、これは接続の選択としてInternet supportが表示され、それをダブルクリックすると192.168.1.102にポート5500を使用して接続するということ。
 -noregistryはたぶん「レジストリを使わない」という意味なんじゃないかと。
 [HOST]セクションは複数記述することができる。
 デフォルトで2番目に入っているものには-pluginというオプションが指定されているが、これはDSMpluginを使用して暗号化を行なうという意味である。
 このオプションは-connectオプションの前にないといけない。
[TEXTTOP]
 説明を表示させる場所の一行目に表示させたい文字を記述する。
 デフォルトは「使いたい接続をダブルクリックしろ」とか書いてある。
[TEXTMIDDLE]
 2行目に表示させる文字。
 デフォルトは「接続の前に」とか書いてある。
[TEXTBOTTOM]
 3行目に表示させる文字。
 デフォルトは「接続する時には56 576896に電話しろ」みたいなことが書いてある。
[TEXTRBOTTOM]
 以下どうでもいいのでしばらく省略
[DIRECT]
 このセクションは中身は必要ない。
 何をやるものかといえば、接続を選択することなく起動とともにいきなり接続に行くのである。[HOST]が一つしかない時には相手に接続を選択させる手間をかけさせないでいいので便利である。
 複数の接続があった場合には多分一番最初のが選択されたことになるのだと思うが試していないのでわからない。というか、複数の選択肢を作った場合はこのセクションを削除するだろう、普通は。

Viewerの設定

 ポート番号を変更したり暗号化を行なった場合にはViewerを起動する時にオプションを指定する必要がある。
 この辺の説明を書いているページはあまり見当たらないのだが、Viewerの説明を見ればわかることである。
 ある意味、多少なりとも安全性を上げて使用するのであればポート番号の変更や暗号化は当然行なうべきことなのだが、単純にスタートメニューからリッスンモードで起動しただけでは設定できない物なのでいちおう説明をしておく。

 まず、Viewerをリッスンモードで起動するのは、スタートメニューのリッスンモード起動用にショートカットのプロパティを見ればわかるように -Listen オプションをつければいい。ちなみにこのオプションの後ろに数字を入れるとそのポートを使用して接続することとなる。
 そして暗号化をするには -dsmplugin MSRC4Plugin.dsm というオプションをつければいい。
 ということで、VNCViewerのショートカットを作ってそのプロパティで
"C:\Program Files\UltraVNC\vncviewer.exe" -Listen 12345 -dsmplugin MSRC4Plugin.dsm
 と指定してあげればよい。

 暗号化で接続するためのVNCファイルを作っておいた場合は -configオプションでVNCファイルを指定する方法もある。
"C:\Program Files\UltraVNC\vncviewer.exe" -config Listen_12345.vnc -Listen 12345

 このような感じで遠隔サポートが可能になるのだが、UltraVNC本来のレスポンスを利用するためにはサーバー側(サポートされる側)にビデオフックドライバをインストールしなければならない。さすがにSCではここまではやってくれないのが残念なところである。 ちなみにUltraVNCにはチャット機能もついているので筆談しながら作業をすることもできる。

 頻繁にサポートをする相手であれば、一番いいのは一度その人のところに遊びに行って、本人了解の上でUltraVNCをインストールし、ファイヤーウォールやルーターの設定までしてくることだろう。
 当然暗号化とポートの設定をしておいたほうがいい。
 で、必要な時にVNCサーバーを起動してもらう。
 なんか本末転倒な結論である。

 まぁ、多少レスポンスが悪くてもわざわざ出かけていく必要がなくなるのでそれはそれで有効ということで。
 そうそう、PCのサポートを遊びに行く理由にしている人には全く縁のない話なので、そういう人は今までの話を見なかったことにしてここを読むのに費やした時間を取り戻す努力をした方がいいだろう。

 文字ばかりで読みにくいページだと感じた人もいると思うが、本当に必要な情報ならば文句を言わずに読むだろうし、そこまでして読もうと思わない人はそもそも読む必要がない人ということで、ちゃんとしたスクリーンショットとかを撮るのが面倒だった言い訳をして終わりとする。
 リンクが切れていた場合には御容赦を。

表紙へ