无法从Windows 11 Pro访问Linux虚拟机部署的Spring Boot REST API
解决Linux虚拟机Tomcat部署Spring Boot API跨Windows访问失败的问题
1. 先确认基础网络连通性
- 在Windows cmd里执行
ping <Linux虚拟机IP>,如果ping不通,说明网络层面未连通:- 检查虚拟机网络模式:用NAT模式的话,需配置端口转发规则,将Tomcat的8080端口映射到宿主机同端口;用桥接模式的话,确保虚拟机和Windows处于同一网段,且虚拟机获取到有效IP。
- 执行Linux命令
ip addr确认网卡状态和IP是否正确。
2. 检查Linux系统防火墙/安全组
- 能ping通但API访问失败,大概率是防火墙拦截了端口:
- Ubuntu/Debian系(用ufw):
- 查看当前规则:
sudo ufw status - 开放8080端口:
sudo ufw allow 8080/tcp - 重启防火墙生效:
sudo ufw reload
- 查看当前规则:
- CentOS/RHEL系(用firewalld):
- 查看当前规则:
sudo firewall-cmd --list-all - 开放8080端口并永久生效:
sudo firewall-cmd --add-port=8080/tcp --permanent - 重启防火墙:
sudo firewall-cmd --reload
- 查看当前规则:
- Ubuntu/Debian系(用ufw):
3. 确认Tomcat的绑定地址
- Tomcat默认可能仅绑定127.0.0.1,导致仅本地可访问:
- 编辑Tomcat安装目录下的
conf/server.xml,找到Connector节点:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> - 添加
address="0.0.0.0",让Tomcat监听所有网卡:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" address="0.0.0.0" /> - 重启Tomcat:
sudo systemctl restart tomcat(service管理)或./bin/shutdown.sh && ./bin/startup.sh(手动启动)
- 编辑Tomcat安装目录下的
4. 检查Spring Boot应用配置
- 即便Tomcat绑定了0.0.0.0,Spring Boot自身也可能限制访问地址:
- 检查应用的
application.properties:确保server.address=0.0.0.0(不要设为localhost或127.0.0.1) - 检查应用的
application.yml:server: address: 0.0.0.0 - 重新打包部署应用,或重启Tomcat加载更新后的应用。
- 检查应用的
5. 验证端口监听状态
- 在Linux上执行
netstat -tulpn | grep 8080,确认8080端口由Tomcat的java进程监听,且监听地址为0.0.0.0而非127.0.0.1。 - 若显示
127.0.0.1:8080,回到步骤3或4排查配置问题。
内容的提问来源于stack exchange,提问作者zameer
相关产品推荐
相关产品推荐

