Virtualbox+ubuntuにSSH接続してサーバーを立ち上げたら、ホストOS上のブラウザにプレビューを表示できない(解決済)

プログラミング
スポンサーリンク



前提

作動環境

  • ホストOS:macOS Catalina 10.15.7
  • ホスト側ブラウザ:Google Chrome
  • ホスト側エディター:VSCode
  • ゲストOS:Ubuntu
  • VM:Vertualbox

経緯

転職先で改めてRailsチュートリアルをすることになり、ホスト型仮想化を用いて環境構築を行った。

仮想環境を生成し、ゲストOSへのSSH接続完了。

Rails newして、生成されたディレクトリのマウントも完了。

さあ、Railsチュートリアル1.3.2を進めるぞ、というところ。

問題

SSH接続済のVScodeのターミナルから、サーバーを起動

$ bundle exec rails s -b 0.0.0.0
=> Booting Puma
=> Rails 5.1.6 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.9.1 (ruby 2.5.1-p57), codename: Private Caller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

無事立ち上がっているように見える。

ブラウザ(Chrome)でプレビューを見ようと、

http://[UbuntuのIPアドレス]:3000/

にアクセスしたところ、アクセスできませんでした。

エラー画面

なんでや!

「-b 0.0.0.0」のオプションもちゃんとつけて、SSH接続したIPアドレスと相違ないことも確認したのに・・・!

Google先生に泣きついても答えは出ず、先輩に泣きついても答えは出ず・・・

解決策

上司が言うには、

「もしpingが通るならIPアドレスは合っていると考えて、動作させているUbuntu の方で iptables とか Firewallのようなものが動いていて、3000 番ポートが外から接続できないようになっている可能性がある」

とのこと。

確かに、エラー画面にもファイヤーウォールを確認せいと書いてある。

管理者権限で、ファイヤーウォールを無効化

$ sudo ufw disable

無事に表示!

こんなに「Yey! You’re on Rails!」の表示が嬉しかったのは、人生初めて。

学んだこと

ファイヤーウォールを確認って、おそらく家電製品の「コンセントはささっていますか?」レベルのトラブルシューティングのプロセスだよね、きっと。

どんな接続エラーにも書いてあるもんだから、無視する習慣がついてしまった・・・

やはり基礎基本は大切ですね。

ということで今回の学び

  1. 接続エラー → 一度はファイヤーウォールを確認する
  2. エラー画面は大切。無視しない。

以上、同じトラブルに合っている人の助けになれば嬉しいです。

この記事を書いた人
こもれびエンジニア

自然と自由を愛するエンジニア。2021年1月に、大手製造業設計からプログラマ(Rails, AWS)へ転職。動物や自然との触れ合いや、汗を流すのが好き。

/HSP(繊細さん)/18デリケートな象/ストレングスファインダー(1分析思考/2親密性/3学習欲/4調和性/5収集心)、テニス、合気道、登山、あいだみつを、ジブリ、ワンピース、ドラゴンボール、AWS、Ruby on Rails、アイミング

twitterをフォローして、記事にならないちょっとした豆知識もチェック!
プログラミング
スポンサーリンク
SNSでシェア/コメントして、自分のアウトプット/発信力を高めるのにお使いください。 ↓ 各ページへジャンプ ↓
twitterをフォローして、記事にならないちょっとした豆知識もチェック!
スポンサーリンク
「そんなか」サイト

コメント

タイトルとURLをコピーしました