CentOS 8 Vagrant部署SpringBoot后localhost:8080访问无响应求解
问题原因及解决方案
核心问题原因
- 端口转发配置错误:Vagrant配置中
guest参数代表虚拟机内部需要对外暴露的端口,你当前配置将本地8080端口转发到了虚拟机的8443端口,而Spring Boot服务实际在虚拟机内监听的是8080端口,流量没有打到正确的服务端口上 - 附加可能问题1:CentOS 8默认开启firewalld防火墙,未放开8080端口的外部访问权限
- 附加可能问题2:Spring Boot服务如果仅绑定127.0.0.1,会导致虚拟机外部的请求无法访问
你之前测试本地8080被占用是因为Vagrant的端口转发规则已经提前绑定了本地8080端口,所以本地其他应用无法占用,但因为转发目标端口错误,所以访问时返回空响应。
具体解决步骤
- 修正Vagrant端口转发配置
将Vagrantfile中的端口转发行修改为:
config.vm.network "forwarded_port", guest: 8080, host: 8080
- 在provision脚本中添加防火墙放行规则
在shell脚本部分新增如下两行:
sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload
- 可选(服务仅绑定本地回环地址时需要):启动Spring Boot时指定绑定所有网卡
将脚本中启动jar的命令修改为:
java -jar target/*.jar --server.address=0.0.0.0
- 重新加载Vagrant配置生效
在GitBash中执行如下命令重启虚拟机并加载新配置:vagrant reload --provision
验证
配置生效后再次访问http://localhost:8080即可正常打开项目页面,H2控制台http://localhost:8080/h2-console也可正常访问。
内容的提问来源于stack exchange,提问作者Brxan
相关产品推荐
相关产品推荐

