ホストPCからゲストPCにアクセスする方法についての備忘録です。
通常はゲストPCのIPアドレスを入力したり、hostsファイルで名前解決したドメインを入力してアクセスできますが、 "localhost" ではホストPCにアクセスしてしまいます。
http://localhost
このアドレスでゲストPCにアクセスすることに成功したため、その設定内容を解説します。
検証環境
★ホストPC
・OS:Windows 11
★ゲストPC
・仮想環境アプリ:VirtualBox(ver : 7.1.4)
・OS:AlmaLinux 9
・IPアドレス:192.168.1.10
* Apacheを起動しており、ドキュメントルート直下にはindex.phpを配置
* index.phpは「phpinfo()」を表示するのみ
ホストPCからゲストPCにアクセス
http://192.168.1.10
このアドレスにアクセスすると、ゲストPCにアクセスできます。
※ドキュメントルート直下のindex.phpが表示されています。
http://guest (hostsにオリジナルドメイン "guest" を追記)
guest 192.168.1.10
この1行をhostsファイルに追記すると、"http://guest" でゲストPCにアクセスできるようになります。
http://localhost
このアドレスにアクセスすると、ホストPCのlocalhostにアクセスします。
※ホストPCでは何もサーバを立ち上げていないので、見つからないページが表示されています。
"localhost" というドメインをhostsファイルに追記した場合は??
localhost 192.168.1.10
この1行をhostsファイルに追記して "http://localhost" にアクセスしても、ホストPCのlocalhostにアクセスしてしまいます。
どうもwindows側の仕様(?)なのか、localhost名義はhostsの設定が効かず、
強制で自分自身(127.0.0.1)にアクセスしてしまいます。
ポートフォワーディング設定
VirtualBoxの設定を以下のように変更すると解決できました。
(たぶんVMやHyper-Vでも同様の機能はあると思う)
設定 → ネットワーク → (NATが割り当たっているアダプター内の) ポートフォワーディング
(httpでアクセスする場合)
・プロトコル : TCP
・ホストIP : 127.0.0.1
・ホストポート : 80
・ゲストIP : ゲストPCのIPアドレス
・ゲストポート : 80
このように設定すると、http://localhostでゲストPCにアクセスできるようになります。
他にも、ゲストPC内の3000番ポートにアクセスしたい、httpsでアクセスしたいといった場合は、
以下のように設定することで実現できます。
これで、"http://localhost:3000" や "https://localhost" でもゲストPCにアクセスできるようになります。
以上です。
どうしてもlocalhost名義でゲストPCにアクセスしたいときに役立つかもです。