自宅(オフィス)の自称「おうちクラウド」を RDP 対応に
クラウドブームだからってわけではありませんが・・・
私は昨年の中旬から、自分で「おうちクラウド」と呼んでいる環境を社外から使っています(注:現在、弊社・阪神支社は、自宅の一室を改造してオフィスにしているのです)。「おうちクラウド」とは、オフィスに置いてあるメインマシンを社外からもインターネット経由でリモートアクセスして使うことで、
- オフィスにいても外出していても常に同じPC環境を利用する
- さまざまなデータやファイルを一か所に集めておき、一元管理する
- さまざまなデータやファイルをノートPCに入れて持ち歩かないことでセキュリティを強化する
という利点を得ようとしていました。いえ、得ていました。
今までは、TeamViewer というツールを用いていました。このツールは個人的にはかなり気に入っています。具体的には、
- メインツールの「TeamViewer」は、サーバ(コントロールされる側)にもクライアント(コントロールする側)にもなれる。また、サーバのみのツール、クライアントのみのツールもある。インストールしないで使えるエディションもある
- インターネット経由で、リモートコントロールする側もされる側もNATの内側(プライベートアドレスを持っている状態)にいた状態で通信ができる。ルータに穴を開ける必要がない(これが大きい)
- サーバとクライアントとの間で、ファイル転送が容易にできる
- サーバとクライアントの立場をワンクリックで逆転させられる。リモートサポートしている時なんか、「ちょっと私の画面を見て」なんてことができる
- クライアント側は、iPhone、iPad、Android 端末版が用意されている。iPad から PC に接続すると、あまり違和感のない操作が可能
そのほかさまざまな機能があって、本当に便利に使っています。が、この手のアプリの宿命なのかもしれませんが、
- そこそこのネットワーク帯域がないと、とっても遅い
というデメリットがあります。これは、vnc なんかもそうなんですけど、コントロールされる側のローカルコンソール画面をそのまま転送しているため、どうしてもそこそこの帯域が必要なんですよね。いちおう壁紙を消したり、Aero を無効にしたり、色数を減らしたり、といった工夫が自動的になされるようにはなっているんですけど。
そこで、ネットワーク帯域が確保できないときのために、RDP(リモートデスクトッププロトコル)を用いたリモートデスクトップ接続も実現しよう、と画策しました。RDP は画面描画命令をクライアント側に送るため、TeamViewer よりもデータ量が少なくなるんじゃないか、と考えているわけです(実際はどうかわかりませんけど)。
ただ、RDP はそのままではルータを超えられません。インターネット経由で RDP 接続しようと思えば、次の3つのいずれかの方法が必要になります。
- 自宅(オフィス)側のルータのポート 3389 を開ける(かなり危険)
- 自宅(オフィス)側のルータのポートフォワーディング機能を用いる
- リモートデスクトップゲートウェイサーバを立てる
- VPN を構築する
もしかしたら、そのほかの方法もあるかもしれません。今回私は、2.の方法を用いました。それが一番コストパフォーマンスが高いと思ったからです。
まずはルータに設定されているグローバルアドレスは固定のものではないので、外部からこのルータに確実に接続しようと思えば、ダイナミック DNS の機能が必要です。今回は、ルータがバッファロー製だったので、バッファローのダイナミックDNSの機能を用いました。月額315円です。世の中には無料の ダイナミックDNS サービスもありますが、今回は「設定が簡単」というだけの理由でこれを選びました。仮に、"tani.ddns.jp" というアドレスを取得した、としましょう(実際のアドレスは、tani.ddns.jp ではありません ^^;)
次にルータにポートフォワーディングの設定をします。RDP は TCP 3389 番ポートを使いますが、それをそのまま使うのは怖いので、別のポート番号を割り当てます。仮に 10000番としましょうか(実際に使用したポートは 10000 ではありません。念のため ^^;)。そして
- インターネットからやってきたTCP 10000 ポートの通信を、
リモートデスクトップ接続したいマシンの TCP 3389 ポートに転送
という設定を行います。「リモートデスクトップ接続したいマシン」は、IPアドレスで指定します(リモートデスクトップ接続したいマシンには、固定のプライベートIPアドレスが設定されています)。
これで、インターネットに接続されているPC上でリモートデスクトップ接続を起動し、
- tani.ddns.jp:10000
宛に通信を開始するわけです。
実際に使ってみたところ、TeamViewer よりちょっとだけ速いかな?という感じです。あと、TeamViewer では音声出力をリモート側に出すことができないんですが、RDP だとできるんです。これは少しいいですね。あと、TeamViewer は「半角/全角」キーをサーバ側に送ることができないんですが、RDP だったら OK です。
しばらくは、TeamViewer と RDP とを併用してみます。もしかしたら、RDP 一本になるかもしれませんけどね。
・・・久しぶりに、ITっぽいことを書きました。