代码改变世界

JVAA springboot 项目启动后,localhost加端口可以访问,但是外网IP不行// OCPP KYOHOON 京鸿通信 15507589165

2023-07-23 10:59  花无缺Andyi  阅读(1105)  评论(0编辑  收藏  举报

 

现象
java springboot项目启动后,localhost(或127.0.0.1)加端口可以访问,但是使用外网IP却无法访问。

 

 

 

原因及解决方法
springboot 的配置文件(yml 或 properties) 中缺少 server.address 的设置。

解决方法:
在springboot 的配置文件中增加 server.address 的配置。yml 配置文件如下所示:

server.address 用于指定server绑定的地址。

规则1:
server.address 为对应机器ip地址时 ,如 101.12.x.x
此时访问该服务只能使用 ip 访问 。

规则2:

server.address 配置为0.0.0.0

在服务器中,0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址。监听0.0.0.0的端口,就是监听本机中所有IP的端口。如果想让springboot 应用通过外网ip可以访问,一般情况,将server.address 配置为 0.0.0.0 即可。

规则3:
配置为 127.0.0.1 时,可以使用 localhost 和 127.0.0.1访问。但是不能使用 ip 访问。
如果不配置server.address 属性,则默认为127.0.0.1,所以默认规则是规则3。

 

所以;公网访问情况下直接配置成 0.0.0.0

 

另外: 开放8080端口 ,防火墙配置如下

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --query-port=8080/tcp
firewall-cmd --reload
firewall-cmd --zone=public --query-port=8080/tcp

防火墙配置后,还需要到阿里ECS的安全组件配置