Windows10のHyper-VでNAT接続な仮想マシンに、ホストマシン以外の外部マシンから接続したい場合、ポートフォワード設定が必要になります。
ポートフォワードを設定する方法としては、PowerShellコマンドレットで設定する方法とnetshコマンドで設定する方法があります。
そこでここでは、PowerShellコマンドレットを使ってポートフォワードを設定する手順を紹介します。
ここで紹介している手順は、NATネットワークを作成していることを前提としています。NATネットワークの作成方法はこちらをご覧ください。

Windows10バージョン1709でHyper-Vに追加された「既定のスイッチ(NAT機能)」を利用している場合は、netshコマンドで設定する方が簡単でしょう。

目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows11 Pro | 1703 |
仮想マシンにポートフォワードする
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
以上で、外部のマシンからブラウザで「http://192.168.1.1」へ接続してみてください。フォワーディングされていることを確認できます。
設定を確認する
現在の設定状況を確認するには以下のコマンドレットを実行します。
PS C:\> Get-NetNatStaticMapping
設定を削除する
設定を削除するには、以下のコマンドレットを実行します。
PS C:\> Remove-NetNatStaticMapping -NatName WinNat1
あとがき
Windows10バージョン1709のHyper-Vからは、「既定のスイッチ(NAT機能)」が標準搭載されたので、NATネットワークを自分で作成する必要性はなくなったため、ここで紹介している方法でポートフォワードを設定することもほとんどないでしょう。