Windows10で仮想マシン上のサーバーにネットワーク上の端末からアクセスする方法

この記事は公開から3年以上経過しています。

Windows10ホスト上で稼働する仮想マシン(NATネットワーク/ホストオンリーネットワークなどホスト↔ゲスト間の通信可能な仮想ネットワーク)のネットワークサービスに対してポートフォーワーディングを行うことで、ネットワーク上の端末からアクセスする方法。

サーバーサイド開発をローカル仮想マシン上で行っているケースなどでデモを見せたいときなどに使える便利な小技です。

構成

IP=192.168.1.100、ゲストIP=192.168.10.10で、HTTPへの接続例です。

file

※IPアドレスやネットワークサービスのポート番号は適宜読み替えてください。

手順

  1. ホストWindows上で管理者権限のコマンドプロンプトを起動する。

  2. 以下のコマンドでゲストの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
  3. 以下のコマンドでホストのファイアーウオール設定に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制御する

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする