自作PCをしたので,こいつを活用せねばという強迫観念にとらわれている.

よく考えれば,夏休みが終われば,家にいる時間は限りなく少なくなるので,外部から利用できるようにしておかねばと思った.

ということで,リモートデスクトップできるようにすることにした.

ネットワークの知識が殆どない状態からの出発なので手探りです.

リモートデスクトップとは
マシンを外部の端末(他のPCやタブレット・スマートフォン)からネットワークを通じて利用できるようにするもの.アクセスした端末には,パソコンの画面がそのまま映って,マウスもキーボードも使える.

モバイルで常に持ち歩いているMacbook Airから自宅のWindowsマシンを利用できるようにする.

リモートデスクトップには,Windows8.1Pro OSが提供する標準のものを利用することにした.Pro版以外では提供されていないようなので注意.

まずは,家庭内のネットワークでリモートデスクトップできるようにする.

手順
  • Windowsマシンでリモートデスクトップを許可する
  • WindowsマシンのプライベートIPアドレスを固定する
  • Macにリモートデスクトップ用のクライアントソフト「Microsoft Remote Desktop」をインストールする.
  • Microsoft Remote Desktopを設定,起動
  • 繋がる

Windows 8でリモートデスクトップを使用するための設定方法

Windows 8 / 8.1でIPアドレスを固定に設定する方法

Mac App Store - Microsoft Remote Desktop

同じネットワーク内なので,殆ど遅延なく使えた.Mac内の仮想環境に入れたWindowsと比べた場合,処理が軽快な分むしろ快適だった.外から利用した場合はラグが出ると思われる.

外からリモートデスクトップできるようにする.

外からリモートデスクトップできるようにすると同時に外からマシンを起動できるようにもする必要があることに気づいた.常にマシンを起動していては電気代がかさむもん.

これはWOL(Wake On Lan)という技術で実現できるらしい.

WOLをさせる.

ルータがWOL機能を提供する場合もあるらしい.ルータでWOLで遠隔からマシンを起動させるには以下に対応している必要があることが分かった.

  • ルータがWOLに対応していること
  • マシンのマザーボードがWOLに対応していること
  • ルータのグローバルIPアドレスが分かること.

たぶんこんな感じ・・?

WOLでは,起動したいマシンにLANを通じてマジックパケットと呼ばれるパケットを送出し,マシンはそれを受けることでマシンを起動させるらしい.

我が家のAtermルータの場合,

http://ルータのグローバルIPアドレス:指定したポート番号

にアクセスして,ログインすることで,マシンを起動できるようになる.

そのため,ルータに事前に以下の情報を設定しておく必要があった.

  • マシン名とマシンのMacアドレス(物理アドレス)
  • ログイン用のIDとパスワード
  • 指定するポート番号

具体的にはこんな感じ.

58

55

また,マシン側では以下の設定をしておく必要がある.

  • マザーボードのBIOSでWOLを有効化

ASUS製マザーボードH97-Proの場合,UEFI BIOS UtilityのAdvanced Mode>詳細>APM>PCIE/PCI による電源ON を有効化することでWOLが使えるようになる.

  • Windows側で高速スタートアップを無効化

高速スタートアップさせると,WOL出来ないらしい.

無効化の方法は以下参照

Windows 8 で WOL(Wake On LAN) を使う時の注意点 | でじまみ - 楽天ブログ

ルータの対応,マシンの対応は出来た,

ただし,3つ目の「ルータのグローバルIPアドレスが分かること」,が鬼門.

そもそも,回線の契約でグローバルIPアドレスをもらえていない場合があるらしい.マンションなどではそうらしい.そういう人は残念ながらここではフォローしない.たぶん,VPNとか使うのだと思う.

また,グローバルIPアドレスを貰えている場合も,固定されたIPアドレスの場合と,動的IPアドレスの場合がある.IPアドレスは枯渇している資源なので,大抵の場合,動的IPアドレスの可能性が高い.そうなった場合,先程の「http://ルータのグローバルIPアドレス:指定したポート番号」でアクセスしようにも,ルータのグローバルIPアドレスが変わってる可能性があり,利用できない場合が出てくる.

この問題は,WOLにかぎらず,リモートデスクトップを利用する際も問題となる.

AtermルータにはホームIPロケーションという機能があって,ルータのアドレスを知れる場合があるが,我が家のルータは古く対応していなかった.

そのため,代わりに使用したのが,DDNS(Dynamic DNS)である.

DNSは,IPアドレスと"exmaple.com"といったドメイン名を紐つけるが,DDNSはこれを"動的"に紐つけるものらしい.

世の中には,無償のDDNSサービスが存在してる.

自宅のネットワーク内の端末にDDNSクライントを起動させておき,ルータのグローバルIPを定期的にDDNSサービスが提供するDDNSサーバに更新・登録させることで,あるドメインとルータの現在のグローバルIPアドレスが常に紐付けられるようにする.

ルータ自体がDDNSクライアントの機能を果たすルータもあるが,残念ながら我が家のルータはDDNS機能には対応しているものの,有償のDDNSサービスしか利用できないようになっていた.

そのため,自宅のネットワーク内で何かしらの端末を起動させておき,ドメインとIPアドレスの紐付けを更新させておく必要がある.

どのマシンでそれを行わせるか・・・・?

そのマシンは常に起動させる必要があるためWindowsマシンを使っては本末転倒である.

Androidを使うことにした.Androidなら家に余っているし,消費電力も比較的少ないはず.

ラズベリーパイとかでもいい.

Melog: Android端末をDynamic DNSクライアントにする

Dynamic DNS Update - Google Play の Android アプリ

幾つかの無償DDNSサービスに対応している.

ここでは,No-IPという無償DDNSサービスを利用することにした.

ちなみにNO-IPはいま話題らしい

ダイナミックDNSがマルウェアの温床になっているとしてMicrosoftがNo-IPのドメイン差し止め - GIGAZINE

これで,ルータの対応,マシンがWOLに対応し,ルータのグローバルIPアドレスが分かるようになったので,遠隔でのマシンの起動が出来るようになった.まだ遠隔起動ね.リモートデスクトップじゃないよ.

外部からのリモートデスクトップ.

同じネットワーク内からは,マシンのプライベートIPアドレスを使ってリモートデスクトップのクライアントから接続してあげることで利用できた.外部からは,リモートデスクトップするためには,ルータでポートマッピングというものを設定する.

ポートマッピングとは 【 port mapping 】 - 意味/解説/説明/定義 : IT用語辞典

マシンはプライベートIPアドレスしか持たないため,ルータを設定し,グローバルIPアドレス:特定のIPへの通信をマシンのプライベートIPアドレス:特定の通信に横流ししてあげるようにする.

我が家のルータでは,こんな感じ.

40

リモートデスクトップは,デフォルトでは3389番ポートを使うらしいのでそれにする.マシンのIPアドレスは,先程固定している筈なのでそれを使う.

学内からリモートデスクトップする.

学内はネットワークに制限が多いらしく,通らないポートが多いらしい.

3389番もそうらしく,学内からは通信できなかった.

ポートを変えてあげればいいらしい.

外出先から自宅のパソコンにリモート接続 Nerinoのブログ/ウェブリブログ

を参考に

  • ファイアーウォールでポートを開ける
  • リモートデスクトップのポート番号を変更する
  • ポートマッピングのポート番号を変更する

を行えばいいらしい.

らしい.

課題

  • セキュリティ的なことが分からない.