この記事は公開から3年以上経過しています。
Windows10ホスト上で稼働する仮想マシン(NATネットワーク/ホストオンリーネットワークなどホスト↔ゲスト間の通信可能な仮想ネットワーク)のネットワークサービスに対してポートフォーワーディングを行うことで、ネットワーク上の端末からアクセスする方法。
サーバーサイド開発をローカル仮想マシン上で行っているケースなどでデモを見せたいときなどに使える便利な小技です。
構成
IP=192.168.1.100、ゲストIP=192.168.10.10で、HTTPへの接続例です。
※IPアドレスやネットワークサービスのポート番号は適宜読み替えてください。
手順
-
ホストWindows上で管理者権限のコマンドプロンプトを起動する。
-
以下のコマンドでゲストの
192.168.10.10:80
を、ホスト192.168.1.100:8080
に転送する。netsh interface portproxy add v4tov4 listenport=8080 listenaddr=192.168.1.100 connectport=80 connectaddress=192.168.10.10
-
以下のコマンドでホストのファイアーウオール設定に
TCPポート8080
への接続許可を追加する。netsh advfirewall firewall add rule name= "Open HTTP" dir=in action=allow protocol=TCP localport=8080
手順1〜3の実行後にネットワーク上の端末192.168.1.200から192.168.1.100:8080にアクセスすると、VM上の192.168.10.10:80のHTTPサービスにアクセスできることが確認できます。
参考ウェブサイトなど
Microsoft Docs
Netsh interface portproxy コマンド
Microsoft Docs
netsh ファイアウォールの代わりに netsh advfirewall ファイアウォールを使用して、ファイアウォールWindows制御する
以上です。