QNAPでOpenVPNを使う/Android編

  • 投稿日:
  • by
  • Category:

2017-02-12_15h38_25.png

以前、「QNAPを用いたスマートフォンのOpenVPN接続」記事を書きました。あれから2年経ち、QTS(QNAPのOS)は頻繁にアップデートされ、QNAPのDDNSサービスもmyQNAPcloudへと変わりました。

以前より簡単にOpenVPNを構築できるようになったため、改めて紹介します。今回はAndroid端末による接続です。

GV-N66TOC-2GD/A (GTX660Ti)レビュー

GV-N66TOC-2GDA_img秋に発売されるBF4に向けてGIGABYTE製 GV-N66TOC-2GD/A を買いました。









とりあえず、買ってすぐの3DMarkの結果を。
オーバークロックはしていません。

GV-N66TOC-2GDA_3dmark

3DMark 11(Performance)の結果も。
ASCIIの記事では、同じGPUで測定した結果が「8,707」だったので若干落ちる結果となった。

3DMark_11.png

QNAP TurboNASとiPhone/AndroidのVPN接続(OpenVPN編)

  • 投稿日:
  • by
  • Category:

QNAPのOS(QTS)が新しくなったため、設定方法が変わりました。
新しい接続方法(Android編)はこちらの記事をご覧ください。(2017年7月追記)


以前、PPTPを用いたQNAP TurboNASとのVPN接続方法を書きました。
がしかしQNAPはOpenVPNも使えます。ものすごく簡単に。

PPTPはセキュリティが心配、PPTPだと安定して自宅のNASと繋がらないという方、一度お試しください。私も試すしかないと思ってやってみたのですが、iPhoneとのOpenVPN接続が一筋縄ではいかなかったのでこちらも記事にしました。

※ PPTPとOpenVPNの違いはこちらのサイトが分かりやすいかなと思います。

QNAP TurboNASのautorunについて

  • 投稿日:
  • by
  • Category:

QNAPの起動時にスクリプトを実行したい場合、普段はマウントされていないフラッシュメモリ部分をマウントして、そこにautorun.shを作って書き込んでいくという方法が定石でした。

多くのWebページで解説されていますが、次のようなものです。

mount -t ext2 /dev/mtdblock5 /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
umount /tmp/config

しかしここ最近、autorun.shが思い通りに動作していないことに気がつきました。どうやら、autorun.sh自体が実行されていないようです。

NAS本体がおかしくなったのかと思い、暫くほっといたところQNAP wikiのautorun解説に「 3.8.2以降のファームウェアでは上記の方法だと実行できない」と書いてあります。まさしくコレ、出来ないはずですわ。

回避策として、ファームウェア3.8.2以降のTurboNASのために新しい方法が紹介されています。NAS起動時にQPKGのアプリケーションの起動と一緒にautorun.shを実行してしまおうというもの。
Wikiの日本語訳になってしまいますが、簡単に書くと

1.SSHでNASに入ってqpkg.confファイルを開きます。

vi /etc/config/qpkg.conf

2.qpkg.confファイルの末尾に以下の文を追記します。

[autorun]
Name = autorun
Version = 0.1
Author = neomilium
Date = 2013-05-06
Shell = /share/MD0_DATA/.qpkg/autorun/autorun.sh
Install_Path = /share/MD0_DATA/.qpkg/autorun
Enable = TRUE

赤字の部分について、TS-112のような単一ドライブしかないTurboNASの場合、/share/MD0_DATA ディレクトリがないので "/share/MD0_DATA/" を "/share/HDA_DATA/" に置き替えてください。
例えば次のようになります。
   /share/HDA_DATA/.qpkg/autorun/autorun.sh   

3.上記の"Shell= "で指定したディレクトリを新規に作成します。

# mkdir /share/MD0_DATA/.qpkg/autorun

ここでも単一ドライブのNASの場合、/share/MD0_DATA/ → /share/HDA_DATA/ に置き換えてください。以降も同様です。

4.autorun.shファイルを新規に作成します。書き方は普通のShellスクリプトの書き方と同じです。

# vi /share/MD0_DATA/.qpkg/autorun/autorun.sh

5.最後にautorun.shに実行権限を与えます。

# chmod +x /share/MD0_DATA/.qpkg/autorun/autorun.sh

あとはautorun.sh を実行してみて希望どおりの動作をするか確認し、その後「reboot」して起動時にautorun.shがきちんと実行されることを確認してください。

私のTS-112のファームウェアは「3.8.3 Build 20130426」ですが、この方法でNAS起動時にautorun.shを動作させることができました。

QNAP TurboNASへのPPTP接続が切断される問題について

  • 投稿日:
  • by
  • Category:

出先にて、Mac から自宅のTurboNASへPPTPでVPN接続しようとすると、すぐにこんなメッセージが出て接続できなかった。

vpn_disconnect.png

iPhoneの3G環境だと接続できるのになぜだろうと調べていると、PPTP接続を安定して行うにはPPTPサーバ側の設定がちょっと必要で、その設定がされていないとよく切断されてしまうみたいです。PPTPではありがちな問題らしく解説サイトが多々見られます。
  モバイルWiMAX接続経由でPPTP接続をする際の注意点
  ユグドラシルの木漏れ日: Macで職場へpptp接続後、すぐに切断される件

結論を言えば、PPTP接続時のMTUとMRUを値をデフォルトから変更してやればよいのです。
「TurboNASではどう変更するか」を続きで書きます。

QNAP TurboNASとiPhone/AndroidのVPN接続

  • 投稿日:
  • by
  • Category:

QNAP-VPN0QNAP TurboNAS TS-112でのはなし。
ファームウェアが最新ならば、どのTurboNASシリーズでも可能かと思います。

QNAPには「Qmobile」というスマホ向けのアプリがあります。これを使うとスマホから自宅のTurboNASにアクセスし、「Multimedia」内の音楽や動画ファイルを3GやWifi環境でストリーミング再生できます。

iPhoneの容量節約になってとっても便利〜と思っていたのですが、Qmobile自体の出来があまりよろしくないようです。フォルダ一覧を取得するのに時間がかかる(右画像のさらに多くのファイルのロードがすごく長い)、よく切断されてしまう・・などの問題にぶち当たってます。

自宅のローカルネットワーク内ならばDLNAクライアントアプリを用いて、ミュージックアプリのように
<アーティスト一覧>や<アルバム一覧>からNAS内の曲を選曲できて、ストレスなく再生できますよね。外出先の3G環境下でも同じことがしたいと思いますよね。

そこで、自宅にVPN接続すれば、ローカルネットワークにいるときと同じようにDLNAクライアントを用いてサクサク曲を聞けるので便利だと思い、記事にしてみました。

<注意>
記事ではVPNの一つのPPTPを用いた構成方法を紹介していますが、
docomoのspモードの場合、残念ながらPPTPが使用できません。
契約をmopera Uにする、もしくはPPTPではなくL2TP/IPsecを利用することでdocomo回線でもVPN接続できますが、後者はQNAP TurboNASシリーズでは対応していません。

回避策としてOpenVPN(別途Androidアプリ要)を利用すれば、TurboNASとVPN接続可能です。またau・SoftbankではPPTPで接続できることを確認済みです。

MacからのPPTPを用いたVPN接続は別途PPTPサーバーの設定が必要です。
詳しくは別記事に書きました。→<QNAP TUrboNASへのPPTP接続が切断される問題について>

オモシロNAS QNAP TS-112買ってみた

  • 投稿日:
  • by
  • Category:

QNAP TS-112初めてNASを買ってみました。
このNASを買った目的は次の3つ。

  • インターネット越しに外出先からNASのファイルにアクセスしたい
  • iPhoneでもNAS内の音楽や動画を楽しみたい
  • Linuxベースでいろいろ遊べる

あとは24時間稼働させておくものなので省電力であることと安定して動作すること。

自宅でのギガビットイーサネットが普及したことや、IP対応機器が増えたことで安いNAS製品が多く出ており、初心者にも敷居が下がっています。

そんななか、SOHOや家庭向けで人気なのがQNAPというメーカーのNAS。
台湾メーカーですが、管理画面やマニュアルなど日本語対応が優秀。
LINUXベースなので、LINUXに馴染んだ人やこれを機に勉強してみようという人にはNAS以外にも活用できる面白い製品です。

[メモ] MPICH2におけるmpdboot時の407エラー

MPICH2で、次のような条件で自ノードを含んだ複数台のノードとハンドシェイクをしようとした。

     ホスト名  :   IPアドレス
自ノード  i11server13 : 192.168.0.13
ハンドシェイクするノード  i11server14 : 192.168.0.14


自ノード(i11server13)の ~/mpd.host に2台のIPアドレス(もしくはホスト名)を書きこんで、
ハンドシェイクするコマンドを打つと

	%mpdboot -n 2 -f ~/mpd.hosts
	mpdboot_i11server13 (handle_mpd_output 407): failed to handshake with mpd on 192.168.0.14; recvd output={}

というエラーが返ってきた。もちろん、ハンドシェイクは出来ていない。一方、自分だけの(1台での)ハンドシェイクは

%mpdboot -n 1 -f ~/mpd.hosts

のコマンドで出来ているのでMPICHがおかしい訳ではなさそう。

MPICHの407エラーでググったところ、望ましい結果がなかったので、いつも良くコケる原因の一つである、
ハンドシェイクするノードの /etc/hosts が共通になっているか調べたところ、ホストネームが載る一番上の行は
次のようにコメントアウトしてあり、どちらも共通だと解釈がされているはずだ。

%cat /etc/hosts]
#127.0.0.1    i11sever13    localhost.localdomain    localhost
::1           localhost6.localdomain6 localhost6
192.168.0.13  i11server13
192.168.0.14  i11server14

そこで --debugオプションを付けることで、詳細なエラーメッセージを吐くということが分かったので、実行してみた。

% mpdboot -n 2 -f ~/mpd.hosts --debug
debug: starting
running mpdallexit on i11server13
debug: launch cmd= /usr/local/mpich2/bin/mpd.py   --ncpus=1 -e -d
debug: mpd on i11server13  on port 50158
debug: info for running mpd:{'ncpus': 1, 'list_port': 50158, 'entry_port': '', 'host': 'i11server13', 'entry_host': '', 'ifhn': ''}
debug: launch cmd= rsh -n 192.168.0.14 '/usr/local/mpich2/bin/mpd.py  -h i11server13 -p 50158  --ncpus=1 -e -d'
debug: mpd on 192.168.0.14  on port 35639
mpdboot_i11server13 (handle_mpd_output 407): failed to handshake with mpd on 192.168.0.14; recvd output={}

と出力されたが、有力な情報は得られなかった。
なんとなく分かるのは、ハンドシェイクしようとしている192.168.0.14のマシンが、ハンドシェイクを拒否している感じ。


最終的に分かったことが、ハンドシェイクする際の ~/.mpd.conf に記述するパスワードの書き方が
共通ではなかった事だった。というのも、

i11server13% cat .mpd.conf
MPD_SECRETWORD=hogehoge
i11server14% cat .mpd.conf
MPD SECRETWORD=hogehoge

上記のように、MPD SECRETWORDの書き方が違った(アンダーバーを付ける・付けない)ことが原因であり、
これを共通にしたところ複数台でハンドシェイクできた。
なんとも初歩的なミスなのかもしれないが、MPICHのエラーメッセージが出ない事も不親切だ。


そんなことでMPICH2のハンドシェイク時に407エラーが出るときの対処まとめ。

  • /etc/hostsがハンドシェイクするマシンと共通になっているか?
  • .mpd.conf はパスワードだけでなく、その入れ子の名前も共通か? (これについては下記で詳細)

ところで、他のMPICH解説サイトを見ると、.mpd.confは

secretword=共通のパスワードを記入

みたいな書き方をせよ! って解説されているけど実際は、
.mpd.confに書かれている文字列が同じかどうか で判断しているよう。

試しに、両ノードの.mpd.conf に "hogehoge" としか書かなくてもハンドシェイクできちゃったし。
まぁ無事ハンドシェイクできて良かった。


ちなみに、MPICH2の420エラーは "~/.mpd.conf "のパーミッションが正常ではない、というエラーです。

%chmod 600 ~/.mpd.conf

でOK。