自宅にVPNを張ったら世界が変わった
この間、えろい人(@ichi_sien)にBUFFALOのルーターをもったんですが、このルーターがPPTPプロトコルのVPNに対応していたので自宅にVPNを張ってみることにしました。
VPNの設定は意外と簡単で、ルーターの設定をちょこっと変えるだけでできました。
でも、どうやらVPN接続のために割り当てられているグローバルIPアドレスは不定期で変わるらしいのでDDNS(Dynamic Domain Name System)を使うらしい。が、BAFFALO公式のやつに契約すると年間3500円ぐらい取られるらしいです。固定IPだともっとかかるのかな?
というわけでフリーのDDNSサービスを利用して、IPアドレスを定期的に更新することにしました。
使ったサービスはmydns
ここはAPIを提供していてHTTP GetするだけでIPを更新できます。
というわけで電気代も心配なのでラズベリーパイでwgetをつかってAPIを叩くスクリプトをcronで6時間ごとに走らせることにしました。*1
あとはお名前.comのほうから、CNAMEで hogehoge.garicchi.com→mogemoge.mydns.jpと割り当ててやれば、hogehoge.garicchi.comに向かってVPNアクセスすれば固定アドレスにアクセス可能となりました。
これで研究室にいてもおうちネットワークに接続できるぞヤッターって感じだったのですが、思ったより便利で感動しました。
モバイルマシンで高スペックな性能を出すことができる
自宅では常にかずきさん(@okazuki)から格安で買ったCore i7のVAIO DUO11が常に起動してるのでVPNを張ることでいつでもそこにリモートデスクトップできます。*2
やっぱりいつでもアクセスするだけで中断している作業を継続できるのは便利ですね。
Windows8インチタブレットでCore i7並のスペックをだすことができるのはやはり魅力的です。
OSを選ばずにVisualStudioが使える
研究室ではUbuntuを、外出時はMacBook Proを、という感じで現在すごしているのですが様々なOSでも、VPN接続してリモートデスクトップするだけでVisualStudioが使えます。
Macの場合は日本語入力切替が面倒ですが(Ctrl+1に割り当ててる)
ネットワークさえあれば端末のスペックが少し低くても端末自体のCPUリソースはあまり食いません。
リモートデバッグができる
VPN張った一番の利点はこれだと思うのですが、VisualStudioのリモートデバッグを、VPNアクセスしてる端末をリモート先として利用することができます。
例えばWindowsストアアプリの場合、
という流れが実現できます。
つまりリモートデスクトップでストアアプリのデバッグがしずらい場合、今もっている端末でデバッグできるという超便利機能ができます。
もちろんブレークポイントを設定すればブレークも可能です。
これはWindowsストアアプリだけでなく、Xamarin Build Hostに対しても同様のことが言えます。
Macでリモートデスクトップ→VisualStudioでコードを書く→MacでBuild Hostを立ち上げてiOSシミュレータでデバッグ
が手持ち端末としてはMac1台で完結させることができます。
もし同様のことをMac1台でやろうとすると、Macの上に仮想マシンでWindowsを実行しなければいけないですが、VPNを張ればMacのスペックが低くても、VisualStudioでXamarin.iOSのプログラムを書いてMacの上でデバッグが1台で完結します。
Macのスペックが低くて仮想マシンを立ち上げることができない僕にとっては非常にありがたいです。
とりあえず、おうちVPNを張ると、予想以上に便利なことがたくさんあったので開発がより便利になりました。
どう世界が変わったか?→ずっと研究室にいることが可能になった(吐血)