当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

備忘録:macOSのVirtualBoxでサーバへNAT(ポートフォワード)できない問題を解決する。

講義している中でVirtualBoxをたまに使うことがあるのだが、先日たまたま受講者の一人がmacOSでした。何故かVirtualBoxのポートフォワード設定が間違っていないだがローカルのブラウザからアクセスしてもうんともすんとも反応なしだった。受講者には「おそらくmacOS特有の内部Firewallが絡んでいるのだろうと」説明したが、改めて今回は調べてみた。予測はあたっていたがそれ以外のこともあったので書き残しておこう。

VirtualBoxのポートフォワード設定

まず最初に該当サーバインスタンスを選択してメニューの設定選択する。赤い箇所だ。

次にネットワーク設定に行きます。高度をクリックして詳細設定からポートフォワーディングボタンをクリックします。

ポートフォワード設定画面が現れるので入力します。意外だったのが最初80番443番のポートを設定するんですがmacOSだとウェルノウンポートだと拒否されるようで一向にリッスンすることがなくてもしかしてノンリザーブポートかな!? でやってみたら成功した。このあとに解説するmacOSのセキュリティ設定も必要。

ちなみに、LinuxのVirtualBoxもノンリザーブポートで設定しないとだめだった。

macOSのセキュリティ設定でfirewallの許可アプリケーション設定を行う

まず最初にシステム環境設定からセキュリティとプライバシーをクリックします。そのあとにFireWallのタブを選択します。

VirtualBOXのアプリケーションを追加するために「+」をクリックしてアプリを選択してください。これでアクセス許可対象になります。

仮想サーバでWEBサーバを起動し、ローカルWEBブラウザーからアクセスします。

/etc/hostsにダミーでローカルIPアドレスにホスト名を設定しブラウザーからアクセスしましょう。ポート番号はVirtualBoxで設定した番号へアクセスします。

おまけ

macOSでポートのリッスン状態を確認するにはLinux同様にnetstatを使用します。