配置 Spring Boot 以侦听 localhost 旁边的请求

Posted

技术标签:

【中文标题】配置 Spring Boot 以侦听 localhost 旁边的请求【英文标题】:Configure Spring Boot to listen for request beside localhost 【发布时间】:2017-05-24 09:03:59 【问题描述】:

我已连接到宿舍子网站。我有 2 台带有外部 IP 地址的机器。 (我可以 ping 它们或通过 SSH 与它们连接)Raspberry Pi 运行 ubuntu mate,其中托管了我的 Spring Boot 服务器和其他运行 Windows 10 的机器。问题是 Spring 服务器不响应来自宿舍网络以外的任何来源的请求( DW)。我发现问题是 8080 端口关闭。当我从 DW 旁边扫描打开的端口时,我只能看到 22 个端口打开,DW 内的计算机看到 8080 和 22 个端口已打开并且能够响应 HTTP 服务器。

根据我阅读的here,我必须将 server.address 属性设置为可从“外部”访问

我的spring application.properties

#mysql test config
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver`
spring.jpa.show-sql=true

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy

#initialization
spring.datasource.schema=classpath:/data/schema.sql

#server
server.address= my.adres.here
server.port = 8080

我确信服务器可以正确读取此文件。

我也试过暂时关闭防火墙

sudo ufw disable

检查它是否阻止了此端口上的连接,但这不是问题。

我不确定真正的问题可能出在哪里。 Spring Boot 配置可能有问题吗?或者可能是一些网络问题。

【问题讨论】:

我认为问题与你的DW有关。网络很可能没有在网络之外启用端口 80。 扫描网关地址时应该打开这些端口吗?由于我的 rasp 22 端口是从“外部”打开的,是否表明网关端口 22 也必须打开?我对网关进行了扫描,结果告诉我 22、80、8080 没有响应。 【参考方案1】:

正如@Robert Masen 建议的那样,问题是宿舍网络阻塞了 8080 端口上的连接。

【讨论】:

以上是关于配置 Spring Boot 以侦听 localhost 旁边的请求的主要内容,如果未能解决你的问题,请参考以下文章

在Eclipse中的Spring Boot应用程序,配置为侦听端口XXXX的Tomcat连接器无法启动

使用 Reactor Netty 配置 Spring Boot 以监听 2 个端口

https 后的 Spring Boot:配置为侦听端口 8444 的 Tomcat 连接器无法启动。

Spring Boot 2 使用自定义配置

Spring Boot 学习之路二 配置文件 application.yml

spring boot 启动错误