そこで、ゲスト ポート 80 をホスト ポート 80 に転送して、ゲストで実行されている Apache をホストのブラウザーで表示できるようにしたいと考えています。
次のように設定すると: (8080/80)、localhost:8080 を表示してゲスト Apache サーバーを確認できます。
ホストを 80 に設定し、ゲストを 80 に設定しても機能しません。ゲスト 80 をホスト 80 に転送するにはどうすればよいでしょうか。
NAT モードでの実行が必須であると想定します。
答え1
スクリーンショットから、OS X 上で VirtualBox を実行しているように見えますが、それは正しいですか?
そうであれば、デフォルトでは、ユーザー アカウントは 1024 未満のポートでリッスンする IP エンドポイントを作成できません。どうしても低いポート番号でリッスンする必要があるものがある場合は、次の 2 つの選択肢があります。
- VirtualBox を root (またはその他の特権アカウント) として実行することもできますが、多くのセキュリティ制限を回避する傾向があるため、このソリューションは推奨されません。
ファイアウォールにポート 8080 から 80 への転送ルールを追加して、トラフィックを自動的にリダイレクトすることができます。VirtualBox は引き続きポート 8080 を転送するように設定されます。簡単に言うと、次のようになります。
- ターミナルを開いて、次のように入力します。
sudo vi /etc/ipfilter/ipfw.conf
- 次の行を追加します:
add 12001 fwd 127.0.0.1,8080 tcp from any to me dst-port 80
- ファイルを保存して閉じます:
:wq
- ターミナルを開いて、次のように入力します。
免責事項: 最新の OS X はおろか、Mac も手元にありません。そのため、高レベルのアイデアは適用されますが、ファイアウォール転送ルールを構成する実際の詳細は、現在実行しているバージョンによって若干異なる場合があります。
これに対処するには、まだもっと良い方法があるかもしれません。たとえば、ゲスト用に 2 番目の仮想アダプタを設定し、それを「ホストのみ」として設定すると、ポートを転送しなくても、ホストからゲストのどのポートにもアクセスできます。ネットワーク全体でゲストを共有する必要がある場合は、この方法は意味をなさないかもしれません。その場合は、「ブリッジ」仮想アダプタの方が意味があるかもしれません。VirtualBox マニュアルの第 6 章で、さまざまなネットワーク モードについて読むことをお勧めします。https://www.virtualbox.org/manual/ch06.html
答え2
ポート 80 が ISP によってブロックされている可能性がありますが、VirtualBox では正常に動作します。どのように確認しますか? 詳細を提供してください。