はじめに
こんにちは。アメリカで独学でエンジニアを目指している者です。現在、Linuxの勉強を進めており、「ゼロからはじめるLinux」という教材を利用して、Linuxを用いたサーバ構築に取り組んでいます。教材では、Apacheをインストールし各種設定を行った後、/var/www/html/htmltest.html
を作成し、http://VPSのIPアドレス/htmltest.html
にアクセスすることで作成したHTMLが表示されるはずでしたが、実際には表示されませんでした。この問題を解決するために、VirtualBoxのポートフォワーディング設定が必要でした。
なぜ表示されなかったのか
Linux上でIPアドレスを確認するためにip addr show
を実行すると、表示されたIPアドレスは以下の2種類に分かれていました。
-
ループバックアドレス (例: 127.0.0.5)
ループバックアドレスは、アクセスしているマシン自身を指します。つまり、VM内でこのアドレスにアクセスすればApacheにリクエストが届きますが、ホストPCのブラウザでhttp://127.0.0.5
にアクセスすると、ホストPC自身の127.0.0.5にアクセスすることになり、VM上のApacheには接続できません。 -
VM内部で割り当てられたIPアドレス (例: 10.0.1.5)
こちらはVM(Rocky Linux 9)に内部で割り当てられたIPアドレスですが、一般的にNATモードの場合、ゲストOSのこのIPアドレスにはホストPCから直接アクセスすることはできません。NAT環境では、ゲストOSのIPアドレスが外部に公開されず、直接の通信がブロックされる仕組みになっているためです。
このため、http://VPSのIPアドレス/htmltest.html
ではアクセスできなかったのです。
解決策
以下の手順で、VirtualBox上でポートフォワーディングの設定を行ってください。
- VirtualBoxの設定を開く
- 「ネットワーク」設定の詳細タブに進み、「ポートフォワーディング」を選択する
- 以下のように設定する
名前 | プロトコル | ホストIP | ホストポート | ゲストIP | ゲストポート |
---|---|---|---|---|---|
HTTP | TCP | 8080 | 80 |
設定後、ブラウザで http://localhost:8080/htmltest.html
にアクセスすれば、作成したHTMLが表示されるはずです。
まとめ
今回は、「ゼロからはじめるLinux」でVirtualBoxを使用している際に、Apacheのテストページが表示されない原因とその対処法について説明しました。独学で学習を進めていると、このような問題で行き詰まることもありますが、少しでもお役に立てれば幸いです。これからも一緒に頑張って勉強を続けましょう!