rails sで起動できると思うのですが、rails server -b 0.0.0.0でも起動している人をみました
このbと0.0.0.0ってどういう意味なのでしょうか
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
回答2件
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で起動
投稿2019/09/12 01:35
総合スコア86490
0
-b IPアドレスとすることで、バインドするIPアドレスを変更することができます。
デフォルトではlocalhostにバインドするので、同じマシン上からしかアクセスできません。0.0.0.0にバインドすると、他のマシンからもアクセスできるようになります。
なお、rails sはrails serverの略で、差はありません。
投稿2019/09/12 01:17
総合スコア147001
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
2019/09/12 02:00
2019/09/12 02:06
2019/09/17 04:31