LoginSignup
34
30

More than 5 years have passed since last update.

Vagrant CentOS上のlocalhost:3000がホストから開けない

Last updated at Posted at 2015-05-12

環境

  • Vagrant 1.7.2
  • CentOS release 6.6 (Final)
  • ruby 2.2.0p0
  • Rails 4.2.1

症状

ローカル開発環境上のhttp://localhost:3000がホストマシンから開けない

やったこと

  1. iptablesの設定
  2. Vagrantfileの設定
  3. rails severのオプション変更

1. iptablesの設定

/etc/sysconfig/iptables に以下を加える。
iptables
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT

保存して

service iptables save

を実行。

2. Vagrantfileの設定

テキストエディタでVagrantfileを開き、以下を加える。
Vagrant file
config.vm.network :forwarded_port, guest: 3000, host: 3000

google上で見つかる記事のほとんどがこれやって解決してたんだけどどうもうまくいかなくて、さらに検索した結果こんな記事が
Vagrant で Ruby on Rails 4 の環境構築

3.3 rails serverのデフォルトホスト
Rackの変更 により、rails serverコマンドを実行した際のデフォルトのホストが0.0.0.0からlocalhostに変更されました。この変更は標準的なローカルでの開発ワークフローにほとんど影響を与えないはずです。http://127.0.0.1:3000 および http://localhost:3000 の動作はどちらも以前と同じであるからです。
ただし、今回の変更により、別のPCからRailsサーバーへのアクセスは以前と同じようにはできなくなります。たとえば、development環境が仮想マシン上にあり、ホストマシンからこのdevelopment環境にアクセスする場合などがこれに該当します。 このような場合、サーバーを起動する際にrails server -b 0.0.0.0とすることで、以前と同じ動作を再現できます。
以前の動作に戻す場合は、必ずファイアウォールを適切に設定し、自社ネットワーク内の信頼できるPCだけが開発用サーバーにアクセスできるようにしてください。

とのこと

3. rails severのオプション変更

$ bundle exec rails server -b 0.0.0.0

として以前のバージョンと同じ動作を再現。
これで仮想マシンのローカルホストにホストからアクセスできるはず。

参考

Vagrantの仮想環境でrails serverで動いているアプリケーションにMacのブラウザからアクセスしてみる
Vagrant で Ruby on Rails 4 の環境構築

34
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
30