質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.89%

VirtulBoxのRails server起動後、ホストのブラウザからアクセスできない

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 546

nonamae

score 9

実現したいこと

Windows10からVirtualBox上に作成したCentOSのRailsアプリにアクセスしたい。

状況

Virtulbox上のCentOS7にRailsをインストール

$ rails new testApp
$ cd testApp
$ bin/rails db:create


の後に、

$ bin/rails s
=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.5.1-p57), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop


でサーバー起動、Windows10のGoogleChromeからhttp:localhost:3000にアクセスすると

このサイトにアクセスできません localhost で接続が拒否されました。
次をお試しください

接続を確認する
プロキシとファイアウォールを確認する
ERR_CONNECTION_REFUSED


と表示される。

試したこと

Virtulboxのポートフォワーディングの設定

ホストポート80 ゲストポート80
ホストポート3000 ゲストポート3000

イメージ説明

CentOSのファイアウォールの停止

$ systemctl start firewalldでファイアウォールを停止させてアクセスを試しています。

その他

rails s -b 0.0.0.0でサーバーを起動、http://0.0.0.0:3000にアクセス
rails s -b 0.0.0.0 -p 3001でサーバー起動、http://0.0.0.0:3001にアクセス
共に以下のエラー

このサイトにアクセスできません http://0.0.0.0:3001/ 
のウェブページは一時的に停止しているか、新しいウェブアドレスに移動した可能性があります。
ERR_ADDRESS_INVALID

補足情報(FW/ツールのバージョンなど)

CentOSから$ wget localhost:3000$ wget 0.0.0.0:3000は問題なく200 OKが返ってくるので、railsコマンドやサーバーの起動そのものはうまくいってると思います。

追加画像

イメージ説明

追加画像2

イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • over

    2019/05/24 16:55

    Chromeですか・・・
    だとすると何でしょう?
    以下のコマンドでホストOSで3000/tcpにおける使用可否の確認願います。
    > netstat -ano | find ":3000"

    キャンセル

  • nonamae

    2019/05/24 17:35 編集

    @localhost scaffold_app]$ netstat -ano | find ":3000"
    find: ‘:3000’: そのようなファイルやディレクトリはありません

    と表示されました。が、解決しました。
    解決方法はまた記載します。
    長い間お付き合いいただき本当にありがとうございました!

    キャンセル

  • over

    2019/05/24 17:37

    ああ~すいません。
    実行するのはホストOSで、ホストOSをWindowsと思いこんでいました。

    キャンセル

回答 3

check解決した方法

0

長い間親身にお付き合いいただき、すべての方にベストアンサーを贈りたいほどなのですが、回答いただいた方の方法を繋ぎ合わせて無事解決することができました。

原因

OS Ruby Rails、何かわかりませんが恐らくうまくインストールできていなかったのだと思います。

解決方法

  1. VirtualBOXの設定をすべて削除し、CentOSをインストールしなおしました。
  2. NATを使い、ホストゲストIPは指定せず、ポートを2222-22 3000-3000開放
  3. TeraTermでSSH接続を行って、Rubyなど一式をダウンロード
  4. rails new で新規作成
  5. bin/rails s -b 0.0.0.0でPUMAを起動
  6. GoogleChromeからhttp://localhost:3000/にアクセスで無事繋がりました。

すべての設定をやり直したため、具体的な問題点はわかりませんでしたが、無事サーバーに繋げることができました。親身に対応していただいた回答者の方には感謝しかありません。

ありがとうございました!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

rails s -b 0.0.0.0 での起動が必要です。
rails sで起動するにあたり、-bを指定して、0.0.0.0で全てのIPアドレスからのアクセスを許可します。
類似の解答としては
https://teratail.com/questions/188287#reply-279617
があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/24 16:12

    NatNetworkに関して詳しい説明ありがとう御座います。
    この機能使った事がありません。
    同様の事なのかも知れませんが左側、仮想マシンを選択した上で
    詳細(D)(widows VirtualBOX 5.2.12r122591を想定。)にある、ネットワーク設定から、
    割当(A)NAT ポートフォワーディングを指定して利用する事が多いです。
    スクリーンショットを今撮りにくい環境なので他のページの引用となりますが、
    https://vboxmania.net/%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af%e8%a8%ad%e5%ae%9a/
    こちらの4つあるネットワークアダプタの箇所を設定して利用する事が多いです。
    PCを買い換える事も視野に入れる前に、上記での対応も検討してみてはいかがでしょうか。

    キャンセル

  • 2019/05/24 16:37

    丁寧にありがとうございます!
    無事SSHにはつなぐことができました。(Pumaにはつながりませんが…)

    NatNetworkに関しては、VirtulBoxとVirtulBox感でSSHなどつなぐことができたりするようで、
    秀和システムから発刊されている『ITエンジニアになる!チャレンジLinux』という書籍を基に設定を行っておりました。

    キャンセル

  • 2019/05/24 20:35

    やっととなりましたが進捗あって、パソコン買い直すことは避けられそうで良かったです。
    NatNetworkが影響しているという事象もあるという学びが得られました。

    キャンセル

0

http://0.0.0.0がhttp://localhostの代わりになるのはLinuxの独自仕様のようです。

なので、Windows側からアクセスする際はhttp://localhost:3000を使いましょう。

ポートフォワード設定はVagrant使いだしてから詳細忘れましたが
今眺めたところ
イメージ説明
こうなっていました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/23 13:00

    $ sudo firewall-cmd --state
    で都度状態を確認しているので、Firewallで防がれているということはなさそうなのですが…

    ネットでNATの設定を確認しつつ、SSHで接続を試してみますがやっぱりつながりません。
    Natネットワークだとつながるんですが、なにか他に原因があるのでしょうか…

    キャンセル

  • 2019/05/24 17:24

    windows側のポートを開けているかをコマンドプロンプトから「netstat -ano」で確認し
    開いているプロセス(PID)がSSHのために開いているポートのPIDと変わらないことを確認
    windows側のファイアウォールのログをとってドロップしていない事を確認(やりかたはググって下さい)
    以上で問題なければcentos側に問題がある可能性が高いです。

    キャンセル

  • 2019/05/24 17:36

    ありがとうございます。解決することができました。
    解決方法に関しましては別途記載します。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.89%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる