質問: rails sで起動できると思うのですが、rails server -b 0.0.0.0でも起動している人をみました このbと0.0.0.0ってどういう意味なのでしょうか
回答: IPネットワークにつながっている機器には、少なくとも2つのIPアドレスが付いていることをご存じでしょうか? 1つは、普通に使うIPアドレスで、例えば`192.168.100.3`とか。これは機器ごとに異なります。 もう一つは、「自分自身」を表す`127.0.0.1`で、これは全ての機器がこのアドレスを持ちます。 (正確には、`127.0.0.0/8`なので、先頭が`127`なら`127.2.3.4`とかも全部そう) `ping 127.0.0.1`とかすると、どのPCでやっても自分自身に`ping`したことになります。 Railsに限らずですが、IP通信のサーバーは、ネットワークでの待ち受け時に「どのIPアドレスで待ち受けるか」を指定して待ち受けます。これがRailsだと`-b`オプションです。 Railsのデフォルトは、`127.0.0.1`です。これでPC-Aで起動すると、PC=Bから、`http://192.168.100.3`ではつながりません。`http://127.0.0.1`で接続する必要がありますが、PC-BでこれをやるとそのアドレスはPC-B自身を意味するので、PC-Aにはつながりません。 ということで、この場合、接続可能なのはPC-A上で、`http://127.0.0.1`とした場合のみになります。 `rails server -b 192.168.100.3`とやると、PC-AからもPC-Bからも`http://192.168.100.3`でつながるようになります。 `0.0.0.0`を指定すると、「その機器に付いている全部のIPアドレスで待ち受ける」という意味になります。 従って、 ケース1:ローカルなテスト中なので、他のPCからはつないで欲しくない ⇒ `rails server`で起動 ケース2:他のPCからつないでもらいたい ⇒ `rails server -b 0.0.0.0`で起動