読者です 読者をやめる 読者になる 読者になる

vagrantでrails動かしてみたら、localhost:3000にアクセスできない (´゚д゚`)エー!

事象

ruby on rails のチュートリにて
rails のサーバーを起動して、いざブラウザからアクセス!!

Google Chrome では localhost:3000 に接続できませんでした」

/(^o^)\

◯ 現状確認

  • 3000でプロセスが待ってるのは確認できた。ふむ
[vagrant@localhost ~]$ netstat -anp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:55348               0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:3000                0.0.0.0:*                   LISTEN      24854/ruby               ☆ <= ココ
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -
tcp        0      0 10.0.2.15:22                10.0.2.2:49664              ESTABLISHED -
tcp        0      0 10.0.2.15:22                10.0.2.2:54503              ESTABLISHED -
tcp        0      0 :::111                      :::*                        LISTEN      -
tcp        0      0 :::22                       :::*                        LISTEN      -
tcp        0      0 ::1:25                      :::*                        LISTEN      -
  • ファイヤウォール(iptablesを使用)の設定も大丈夫そう
    設定は以下のように何もされておらず、全部許可になっていた
    (別の意味で大丈夫でなさそうだけど......)
[vagrant@localhost ~]$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

◯ 調べたら

どうやら、Vagrantのネットワーク設定をしないといけなかったみたいです。

  • 設定 @ Vagrantfile
# 以下を追加してポートフォワーディングさせるか
config.vm.network :"forwarded_port", guest: 3000, host: 3000

or

# 以下を追加して、localのみアクセス可能なprivate networkをつくるか
config.vm.network "private_network", ip: "192.168.33.10"
$ vagrant reload  # vagrant再起動

アクセスできるようになりました。