![Hyper-v ゲストからホスト マシン上のアプリケーションへの接続を許可する正しい方法](https://rvso.com/image/1606665/Hyper-v%20%E3%82%B2%E3%82%B9%E3%83%88%E3%81%8B%E3%82%89%E3%83%9B%E3%82%B9%E3%83%88%20%E3%83%9E%E3%82%B7%E3%83%B3%E4%B8%8A%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A%E3%82%92%E8%A8%B1%E5%8F%AF%E3%81%99%E3%82%8B%E6%AD%A3%E3%81%97%E3%81%84%E6%96%B9%E6%B3%95.png)
ゲストからホスト マシン上で実行されているアプリケーションへの接続を許可する正しい方法は何ですか?
設定例:
- 私の 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 アプリへのアクセスを許可する合理的なルールは見つかりません。
では、ゲストがホスト アプリにアクセスできるようにする魔法とは何でしょうか?