◯ 事象
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再起動
アクセスできるようになりました。