« QNAP NASをautofsで全自動マウント | ホーム | QNAP NASにBINDを入れて内部DNSサーバーにする »

2013年3月23日

自動マウントしたQNAP NASに外部からアクセスできるようにする

自動マウントしたQNAP NASに外部からアクセスできるようにする

前回autofsで自動マウントできるようにしたQNAP NASにVPNを設定して自宅の外からも使えるようにする。

QNAP Turbo NAS 取扱説明書 - VPN サービス

QNAP NASには標準でPPTPとOpenVPNサービスが用意されているのでクライアントの都合に応じて設定する。今回はMacのOpenVPNクライアントのTunnelblickを使うことにした。Mac標準のPPTPはネットワーク構成が切り替わったときに自動再接続してくれなかった(と思う)のと、転送速度もOpenVPNより遅かった(ような記憶がある)。

外からのアクセスを簡単にするためにMyCloudNASというサービスが用意されているので設定して hanpen.mycloudnas.com でVPNに接続できるようにする。

これでとりあえず、自宅からはローカルIP(orホスト名)、外からはVPNのIPアドレスでアクセスできるようになったのだけど、常に同じIPアドレス(or名前)でアクセスできないとautofsが動かなくて意味がない。ついでに設定切り替えスクリプト的なものをいちいち実行するのも御免被りたいので、全自動が望ましい。

調べたところ方法は2通りで、自宅用にDNSサーバーを用意するか、APに応じてhostsの設定を切り換えるか。前者は、自宅から hanpen.mycloudnas.com を見たときに宅内DNSサーバーがローカルIPを返して内外どちらからも繋がるようにすることで、常にVPN経由のIPアドレスで共有フォルダをマウントする方法。(hanpen.mycloudnas.com は通常ではQNAP NASがある自宅のグローバルIPになるので、中からだと繋がらない)

後者は、hostsファイルの設定で同じことをやるか、またはQNAP NASのホスト名とIPアドレスの対応を内外で切り替える方法。

とりあえずてっとり早いほうで、hostsの切り替えを試してみた。APに応じた切り替えはlaunchdを使うといいらしい。

無線APによって自動でhostsを変える方法 - unknownplace.org

自宅での /etc/hosts

192.168.1.2 hanpen
192.168.1.2 hanpen.mycloudnas.com

外での /etc/hosts

10.2.0.1 hanpen
#192.168.1.2 hanpen.mycloudnas.com

こんな感じ。自分はhostsに色々追加しているので、参考サイトのようなファイルの差し替えではなく、sedを使って書き換えることにした。

https://gist.github.com/retlet/5227312

で、しばらくこの方法でテスト運用していたのだけど、いくつか問題が。

APが変わっているのにlaunchdが動いてくれないことがある

手動でAPを切り替えたときはhostsの書き換えスクリプトが実行されるのに、「MacBookを閉じてスリープ→自宅外へ移動して開き直して自動的にその場所のAPに繋がる」という状況だと、launchdが反応しないことが多い。結果として毎回書き換えスクリプトを手動実行するという本末転倒っぷり。

FinderでNASのフォルダを開いたままAPを変えるとFinderが死ぬ

完全に応答なしで強制終了も効かなくなる。しばらくすると(たぶんタイムアウトでマウント解除されると)生き返るけど、若干動作が怪しくて、DockからFinderアイコンやダウンロードフォルダを叩いても開けない。Cmd-TabでFinderをアクティブにすると操作できるもののちょっとめんどう。OSを再起動するまで直らない。(これはQNAP NASのIPアドレスまでついでに書き換えてたのが原因かも)

これはいかんので、結局DNSサーバーを立てることにした。以下次回。

トラックバック(0)

トラックバックURL: http://retlet.net/cgi-bin/mt5/mt-tb.cgi/88