web-dev-qa-db-ja.com

Railsアプリケーションはローカルネットワークに表示されません

OSX Yosemiteにアップグレードしてから初めて、同じネットワーク上の別のマシンから自分のマシンで実行されているアプリを表示する必要があります。以前は、これは私の内部IPアドレスを見つけて、それをポート3000で使用するのと同じくらい簡単でした。 http://192.168.0.111:3000

しかし、ヨセミテではこれが機能しないことがわかりました。アプリケーションは確実に実行されており、localhost:3000経由で利用できますが、内部IP経由では利用できません。

ネットワークユーティリティのポートスキャナーを実行しましたが、ローカルホストはポート3000を公開していますが、IPは公開していません。まだアップグレードしていないネットワーク上の他のマシン(10.7.5および10.9.5)では、この問題は発生していません。

どんな助けでも大歓迎です。

編集:システム環境設定のセキュリティとプライバシーペインによると、Yosemiteファイアウォールは現在オフになっているため、問題は発生していません。

24
BrightBlue

デフォルトでは、Rails serverはローカルホストからの接続のみを受け入れます。これは、コンソール出力を確認することで確認できます。

Listening on localhost:3000, CTRL+C to stop

ローカルネットワーク上の他のマシンから接続できるようにするすべてのアドレスをリッスンするには、より寛容なアドレスに明示的にバインドする必要があります。これを試して:

Rails server --binding=0.0.0.0

次のように表示されます。

Listening on 0.0.0.0:3000, CTRL+C to stop

これで、ローカルネットワーク上の他の場所からRailsアプリに接続できます。たとえば、http://192.168.0.111:3000

48
Matt Brictson