IX2015を通してiPhoneでVPNを張る
IX2015を通して、自宅LAN内のPPTPサーバーと、3G回線上のiPhoneとでVPNを張りました。その際、ハマってえらく苦労したので、メモ書きを残しておきます。
1.PPTPサーバーの用意
WindowsでもLinuxでもいいので、PPTPサーバーを用意します。
Linux(CentOS)での環境構築は、ここを参考にさせてもらいました。
CentOS 5.3 で PPTP-VPN サーバーを構築してみる
2.IX2015にポートフォワードを設定
PPPoEを設定しているインターフェースに、NAPTでポート番号1723とGREプロトコルにポートフォワードを設定します。例としてPPTサーバーのIPアドレスを192.168.5.30とすると、インターフェースの設定は以下のようになります。
interface FastEthernet0/1.1
encapsulation pppoe
auto-connect
ppp binding sonet
ip address ipcp
ip napt enable
ip napt static 192.168.5.30 47
ip napt static 192.168.5.30 tcp 1723
no shutdown
3.iPhoneでVPNを設定
iPhoneのVPNを設定します。僕はここを参考にさせてもらいました。
注意点ですが、ここで「RSA SecurID」をオンにして設定を保存するとアウトです。ルーター側がRSA SecurIDに対応していなければ接続に失敗するようになるのは当然ですが、「RSA SecurID」をオフに戻して設定を保存しても適用されず、内部的にはオンになったままになるようです。
ここでハマりました。パケットキャプチャを設定してGREパケットのやりとりを観察したところ、設定を元に戻しても、iPhoneが無茶な開始要求をPPTPサーバーに送って、PPTPサーバーに蹴られるようです。改めてiPhone側で新しい接続設定を作ったら、あっさり繋がりました。僕の環境では、必ず再現します(iOSのバージョンは4.2.1)。
追記:12/03/19
注意点:
GREプロトコルをVPNサーバーにポートフォワードしてしまうと、このVPNサーバーしか、他所のVPNサーバーへの接続ができなくなってしまうようです。上記の例だと、たとえば192.168.5.X系のマシンが192.168.12.XのVPNサーバーに接続したいといった場合、192.168.5.30のマシンしかVPN接続に成功しません。
HDD Regenerator 2011でHDD修復
自宅サーバーのML115でなんか異音がするうえ、/var/log/messagesを見ると
smartd[2704]: Device: /dev/sda, 283 Offline uncorrectable sectors
といういやなログが大量に出てました。
急いでHDD買ってきて交換してみたら、異音の発生源はHDDファンでした。
ズコー。
じゃぁHDDまだ使えるかなってことでHDD Tuneで不良セクタをチェックしてみたら、下図のようなことに。
ちょっと破損箇所が多すぎるので、HDD Regenerator 2011を購入することにしました。
USDで$59.95、日本円で5131円ということで、どっちで支払うか迷いましたが、
結局USDで購入しました。
JCBのカードでUSDを決済すれば、UFJ 銀行(東京)の TTS 始値の仲値 + 1 円
が支払い金額となるはずなので、(決済日のTTS始値を82円と想定 + 1円) x 59.95 = 4975円
程度で買えるはず、と。決済日までにさらに円高が進めばもうちょっと安くなりますが、
これ以上の円高は正直勘弁してほしいです…。
購入して入手したレジストリキーをセットし、USBメモリにブートイメージを書き込み、
修復作業を行ったところ、1.5TBのHDDで13時間程度で作業が完了。
計2249セクターが異常となっており、全部修復できた様子です。
本当に全部修復できたのか、と疑問に思ったので、もう一度HDD Tuneをかけてみました。
結果、まだちょっと破損箇所が残ってました。
どうせなら全部修復したい、ということで修復作業を再実行。
HDD Regenerator 2011はWindows7からでも実行できたので、こっちから実行してます。
まぁ仮に全部直せても、再利用し始めたらまたぽこぽこセクタエラー出るんだろうなぁ…。
<追記>
2回目のスキャンでは、エラーは1つも検知されませんでした。
また、クレジットカードの明細をみたら、支払い金額は4,948円になってました。
Pixiview 1.42リリース
バグフィックスと、過去のランキングも閲覧できるようにしてみました。
「何日前」というスライダーで1以上を設定すると、現在からの日数分もどった過去のランキングが閲覧できます。たとえば10/20から724日前もどると、2008/10/26のランキングを表示します。
ただ現在のバージョンでは、以下のバグがあることがわかっています。
- 古いランキングだと、1位、2位、4位のように、ランキングが歯抜けになっている場合があるが、歯抜けの数が多いと、2ページ目以降の読み込みに失敗する
- 1000日前までしか選択できず、デイリーランキングの最も古い日(2007/9/13)近辺を閲覧できない
これらは次のバージョンで修正します。
iPhoneSimulatorExchangeでインストーラ配布
MOONGIFTさんのところで紹介されていたiPhoneSimulatorExchangeを使って、審査中アプリのインストーラを作成し、配布してみました。
配布先:http://sites.google.com/site/hrfnsn/app01
(接続先で認証方法に変更があったようで、ログインができなくなってしまったので削除しました。)
ビルドを実行すると、デスクトップに「Install <プロジェクト名>」というインストーラが作成されます。これを実行すると、iPhoneシミュレータが起動し、アプリがインストールされます。
至極簡潔な動作ですが、ウィンドウ左下の「Exclude user data」というオプションには注意したほうがよいです。デフォルトではチェックがついていますが、このままだと、NSUserDefaultsに保存した値もインストーラに含まれてしまいます。IDやパスワードを記録したままだとよろしくないです。かといってチェックをはずすと、僕の場合はフォントがおかしくなってしまいました。
クリーンインストールした状態でiPhoneSimulatorExchangeを起動し、インストーラを作成するのがよいかと思います。
wxRuby1.99をOpenSuse11.1で使う
以前にOpenSuse11.0でwxRubyをrakeしたときは、ユニコード関連のエラーで先に進めなくなり結局諦めてしまったのですが、OpenSuse11.1をインストールして試してみたところ、割とあっさり動きました。(やっぱりgem install wxrubyでは動いてくれませんでしたが。)
以下、そのときの作業メモです。
まずはgcc-c++やmake, MesaGLw-develなどコンパイラや、OpenGLのヘッダをインストールしまた。
swigについては、swig1.3.5をダウンロードして、インストールしました。
OpenSuse11.1ではswig1.3.6がパッケージされていて、「これ新しすぎ」とrakeで怒られます。
MediaCtrlは結局のところビルドできなかったので、rake/rakeunixish.rbを編集し、ビルド対象からはずしました。やり方は、
$wx_libs = wx_config("--libs std,stc,gl,media")
のmediaを削除することと、
if not $excluded_classes.include?('\MediaCtrl')
から続くブロックを削除することで行いました。
これでrakeが通り、インストール、動作させることができました。
wxRubyをFedora9で使う
前日Fedora10でのwxRubyセットアップについて書きましたが、今日はFedora9についてです。
Fedora10ではyumでwxWidget(wxGTK)をインストール後、wxRubyをビルドという流れでセットアップできましたが、Fedora9ではyumでwxGTKをセットアップすると、wxRubyがビルドできません。
しかたないので、公式からwxGTKのtar.gzをダウンロードして、ビルドしました。
その際、configureでは
./configure --enable-unicode
のように、ユニコードオプションを有効にしておく必要がありました。
make installが完了したら、wxrubyのtar.gzを展開して、rake。
その際、MediaCtrlのコンパイルが失敗してしまいました。
解説サイトをみるとgstreamer-plugins-baseをインストールすればよさげでしたが、develパッケージを入れても結局コンパイルに成功しませんでした。
仕方ないので、先の解説サイトを参考に、wxruby-1.9.9/rake/rakeunixish.rbを編集し、MediaCtrlをビルド対象からはずしました。
これでrakeが通るので、rake installでインストール。
/usr/local/libをライブラリのパスに追加して、サンプルが動きました。
ruby samples/minimal/minimal.rb
wxRubyをFedora10で使う
「初めてのRuby」でも紹介されてる、クロスプラットフォームのGUIライブラリであるwxRubyですが、Fedora10での導入にハマったのでメモ残しときます。
Ubuntu8.10では
sudo apt-get install libwxgtk2.8-dev
gem install wxruby
の2コマンドでさっくりインストール、動作ができてしまうのですが、
Fedora10で同じように
yum install wxBase wxGTK wxGTK-devel wxGTK-gl
gem install wxruby
の2コマンドでインストールしてもさっくり動きません。
Wx WARNING:####
のような警告メッセージを吐いた後、セグメンテーションフォールト
で落ちてしまいます。
どうやらgemコマンドでインストールするバイナリがfedoraに合わない様子。
wxRubyのソースを公式からダウンロードして、rakeでコンパイルしたらちゃんと動きました。
Fedora9ではもっと面倒だったのですが、それはまた後日。