无法从同一网络中的另一台计算机访问在我的计算机中运行的 SPRING BOOT 应用程序的 REST API
Posted
技术标签:
【中文标题】无法从同一网络中的另一台计算机访问在我的计算机中运行的 SPRING BOOT 应用程序的 REST API【英文标题】:Unable to access REST API of a SPRING BOOT Application which is running in my computer, from another computer in same network 【发布时间】:2018-04-02 14:16:56 【问题描述】:我在 Spring Boot 应用程序中创建了一些其他 API。通过在 cmd 中运行“ipconfig”命令,我获得了我的 ip,并能够使用以下 URL:http://192.168.0.4:8080/topics
从我的计算机访问 API。
但是当我尝试从另一台计算机的浏览器访问它时,它没有发生。浏览器需要很长时间,然后显示“响应时间太长”。仅供参考,两台计算机都连接到同一个wifi。我们在我家使用当地互联网提供商提供的互联网。 Servlet 容器是 Spring Boot 应用程序提供的嵌入式 Tomcat 服务器。
请建议我的 API 如何被同一网络中的其他计算机访问。 如果您需要更多信息,请告诉我。
我在点击此 URL 时检查了本地计算机的防火墙日志文件。我得到以下日志:
2017-10-21 22:33:54 DROP TCP 192.168.0.5 192.168.0.4 57405 8080 60 S
2319032371 0 65535 - - - RECEIVE
2017-10-21 22:33:54 DROP TCP 192.168.0.5 192.168.0.4 57406 8080 60 S
2870949788 0 65535 - - - RECEIVE
2017-10-21 22:33:54 DROP TCP 192.168.0.5 192.168.0.4 57407 8080 60 S
2073270052 0 65535 - - - RECEIVE
【问题讨论】:
您的计算机上是否运行了本地防火墙? 防火墙已开启,但我还在此端口 8080 上添加了入站端口规则,以允许此端口上的所有传入请求 这些计算机是否在同一个域中?或者您可能需要在您的应用程序中启用 CORS。 这是一个防火墙问题..所有请求都被丢弃了..与应用程序无关...问题现在已解决..thnks @smrutiranjan 请在这里分享解决方案,你是如何解决这个问题的,我在这里遇到同样的问题 【参考方案1】:我也遇到了这个问题,发现是防火墙和wi-fi网络属性引起的。
就我而言,我想从同一网络的另一台计算机连接到 Spring Boot 应用程序。 它适用于旧版本的 Spring Boot + Java(2.1.7 和 1.8),但不适用于新版本(Spring Boot 2.4.1 + Java 15)。 问题是较新的 Java 版本仅允许在防火墙入站规则中的专用网络上使用,并且我的 wi-fi 设置为公共。 (旧的 Java 版本允许在公共网络上使用,这就是它工作的原因)。因此,我的问题的解决方法是将 Wi-Fi 网络从公共更改为私有。小心,这样做可能会破坏其他东西。
【讨论】:
【参考方案2】:在您的 Windows 防火墙中添加一个新规则,它将起作用
【讨论】:
通过提供您建议的规则示例可以使这个答案变得更好。请看:how-to-answer以上是关于无法从同一网络中的另一台计算机访问在我的计算机中运行的 SPRING BOOT 应用程序的 REST API的主要内容,如果未能解决你的问题,请参考以下文章
如何从同一网络上的另一台计算机访问 localhost? [复制]