Hyper-v ゲストからホスト マシン上のアプリケーションへの接続を許可する正しい方法

Hyper-v ゲストからホスト マシン上のアプリケーションへの接続を許可する正しい方法

ゲストからホスト マシン上で実行されているアプリケーションへの接続を許可する正しい方法は何ですか?

設定例:

  • 私の Win 10 ホストマシンで実行されているアプリケーション、たとえばポート 4400 上の NodeJS アプリ
  • デフォルト スイッチに接続された Hyper-v のゲスト OS (例: 「クイック作成」で作成された Ubuntu 18.04)

Windows ファイアウォールはゲストからホストへの接続をブロックします:

2019-10-09 10:18:21 DROP TCP 172.17.147.6 172.17.147.1 59560 4400 60 S 3734288315 0 29200 - - - RECEIVE

これは驚くことではありません。なぜなら、「Node.js: サーバー側 JavaScript」というルールがあり、Hyper-V によって作成され、デフォルト スイッチに割り当てられたネットワークの種類である「パブリック」ネットワークのトラフィックをブロックするからです。

驚くべきことに、以前は機能していました。数か月前は、NodeJS アプリと Java アプリの両方で機能していました。1 週間前に既存のセットアップを試しましたが、9290 で実行されているアプリにアクセスできませんでした。Windows ファイアウォールをリセットして修正しようとしましたが、4400 にアクセスできなくなりました。Hyper-V と NodeJS をリセット/再インストールし、魔法のファイアウォール ルールが追加されることを期待しましたが、無駄でした。それでも、「パブリック」ネットワークで NodeJS アプリへのアクセスを許可する合理的なルールは見つかりません。

では、ゲストがホスト アプリにアクセスできるようにする魔法とは何でしょうか?

関連情報