允许客户机连接到主机上运行的应用程序的正确方法是什么?
示例设置:
- 我的 Win 10 主机上运行着一些应用程序,比如 4400 端口上的 NodeJS 应用程序
- 与默认交换机连接的 Hyper-v 中的客户操作系统,例如通过“快速创建”创建的 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 应用程序都有效。一周前,我尝试了现有的设置,但无法访问在 9290 上运行的应用程序。我尝试修复它,重置 Windows 防火墙,但随后无法访问 4400。我重置/重新安装了 Hyper-V 和 NodeJS,希望它能添加一些神奇的防火墙规则,但无济于事。我仍然看不到允许在“公共”网络中访问 NodeJS 应用程序的合理规则。
那么,到底有什么魔力可以让访客访问主机应用程序呢?