Windows10のHyper-VでNAT接続の仮想マシンに外部からアクセスする方法(PowerShell版)

Windows10のHyper-VでNAT接続の仮想マシンに外部からアクセスする方法(PowerShell版)

Windows10のHyper-VでNAT接続な仮想マシンに、ホストマシン以外の外部マシンから接続したい場合、ポートフォワード設定が必要になります。

ポートフォワードを設定する方法としては、PowerShellコマンドレットで設定する方法とnetshコマンドで設定する方法があります。

そこでここでは、PowerShellコマンドレットを使ってポートフォワードを設定する手順を紹介します。

Memo

ここで紹介している手順は、NATネットワークを作成していることを前提としています。NATネットワークの作成方法はこちらをご覧ください。

Windows10のHyper-VでNATネットワークを設定する方法
ちょっとした検証・開発をするときに、一時的な環境として活躍するのが仮想化です。 ここではWindows10のHyper-Vで、NAT機...

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows11 Pro1703

仮想マシンにポートフォワードする

NAT接続の仮想マシンにポートフォワードする手順は、次のとおりです。

なお、ここでは以下のような環境で、外部マシンからNATネットワーク上の仮想マシンのTCP8080番ポートへアクセスできるようにする手順を例示します。

  • ホストのIPアドレスは192.168.1.1
  • ホストの待受ポート番号はhttp(tcp/80)
  • 仮想マシンのIPアドレスは192.168.2.2
  • 仮想マシンの待受ポート番号はhttp(tcp/8080)

まず、管理者権限でPowerShellを起動し、Get-NetNatコマンドレットで現在設定しているNatネットワークの名前を調べます。

PS C:\> Get-NetNat

Name                             : WinNAT1
・・・以下省略

次にAdd-NetNatStaticMappingコマンドレットでポートフォワードの設定を行います。

PS C:\> Add-NetNatStaticMapping -NatName WinNAT1 -ExternalIPAddress 192.168.1.0/24 -InternalIPAddress 192.168.2.2 -ExternalPort 80 -Protocol TCP -InternalPort 8080
オプションスイッチ「-ExternalIPAddress」は、接続を受け付けるネットワークを指定します。ここでは、例としてローカルネットワークからの接続を受け付ける設定にします。

以上で、外部のマシンからブラウザで「http://192.168.1.1」へ接続してみてください。フォワーディングされていることを確認できます。

設定を確認する

現在の設定状況を確認するには以下のコマンドレットを実行します。

PS C:\> Get-NetNatStaticMapping

設定を削除する

設定を削除するには、以下のコマンドレットを実行します。

PS C:\> Remove-NetNatStaticMapping -NatName WinNat1

あとがき

Windows10バージョン1709のHyper-Vからは、「既定のスイッチ(NAT機能)」が標準搭載されたので、NATネットワークを自分で作成する必要性はなくなったため、ここで紹介している方法でポートフォワードを設定することもほとんどないでしょう。

記事が役立ったらシェアしてくれるとうれしいです。