LINEで送る
Pocket

rvm を使って ruby 2.0.0を使うように変更したところ、macで起動している sinatraサーバへLAN内の端末からアクセスできなくなりました。

具体的に言いますと、今までは http://192.168.11.x:4567 といった具合に他端末からアクセスすると表示されていたのに、何故か表示されなくなりました。

サーバの動いているMac(192.168.11.99)からアクセスした結果

http://localhost:4567 -> OK
http://127.0.0.1:4567 -> OK
http://192.168.11.99:4567 -> NG

LAN内の他コンピュータからアクセスした結果

http://192.168.11.99:4567 -> NG

pingも通るし、sshもつながる、Macで動いているapache(http://192.168.11.99:80)もつながるということで、ますますsinatra(ruby?)が怪しいかなーと思ってはいましたが、原因が分からずだいぶハマってしまいました。

解決方法

起動オプションに “-o 0.0.0.0” をつけるとアクセスできるようになります。
どうもセキュリティ絡みで使用が変わったようです。

./run.rb -o 0.0.0.0

詳しくは下記のstackoverflowのページを読んで下さい。

stackoverflow

※1.9.3p327でも発生するようですね。