オルタナティブ・ブログ > 谷誠之の 「カラスは白いかもしれない」 >

人を動かすものは何でしょうか?様々な「座右の銘」から、それを探っていきたいと思っています

自宅(オフィス)の自称「おうちクラウド」を RDP 対応に

»

クラウドブームだからってわけではありませんが・・・

私は昨年の中旬から、自分で「おうちクラウド」と呼んでいる環境を社外から使っています(注:現在、弊社・阪神支社は、自宅の一室を改造してオフィスにしているのです)。「おうちクラウド」とは、オフィスに置いてあるメインマシンを社外からもインターネット経由でリモートアクセスして使うことで、

  1. オフィスにいても外出していても常に同じPC環境を利用する
  2. さまざまなデータやファイルを一か所に集めておき、一元管理する
  3. さまざまなデータやファイルをノートPCに入れて持ち歩かないことでセキュリティを強化する

という利点を得ようとしていました。いえ、得ていました。

今までは、TeamViewer というツールを用いていました。このツールは個人的にはかなり気に入っています。具体的には、

  1. メインツールの「TeamViewer」は、サーバ(コントロールされる側)にもクライアント(コントロールする側)にもなれる。また、サーバのみのツール、クライアントのみのツールもある。インストールしないで使えるエディションもある
  2. インターネット経由で、リモートコントロールする側もされる側もNATの内側(プライベートアドレスを持っている状態)にいた状態で通信ができる。ルータに穴を開ける必要がない(これが大きい)
  3. サーバとクライアントとの間で、ファイル転送が容易にできる
  4. サーバとクライアントの立場をワンクリックで逆転させられる。リモートサポートしている時なんか、「ちょっと私の画面を見て」なんてことができる
  5. クライアント側は、iPhone、iPad、Android 端末版が用意されている。iPad から PC に接続すると、あまり違和感のない操作が可能

そのほかさまざまな機能があって、本当に便利に使っています。が、この手のアプリの宿命なのかもしれませんが、

  • そこそこのネットワーク帯域がないと、とっても遅い

というデメリットがあります。これは、vnc なんかもそうなんですけど、コントロールされる側のローカルコンソール画面をそのまま転送しているため、どうしてもそこそこの帯域が必要なんですよね。いちおう壁紙を消したり、Aero を無効にしたり、色数を減らしたり、といった工夫が自動的になされるようにはなっているんですけど。

そこで、ネットワーク帯域が確保できないときのために、RDP(リモートデスクトッププロトコル)を用いたリモートデスクトップ接続も実現しよう、と画策しました。RDP は画面描画命令をクライアント側に送るため、TeamViewer よりもデータ量が少なくなるんじゃないか、と考えているわけです(実際はどうかわかりませんけど)。

ただ、RDP はそのままではルータを超えられません。インターネット経由で RDP 接続しようと思えば、次の3つのいずれかの方法が必要になります。

  1. 自宅(オフィス)側のルータのポート 3389 を開ける(かなり危険)
  2. 自宅(オフィス)側のルータのポートフォワーディング機能を用いる
  3. リモートデスクトップゲートウェイサーバを立てる
  4. 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っぽいことを書きました。

Comment(3)