You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CentOS7 Firewalld拒绝Web服务器入站连接问题求助

解决CentOS7虚拟机HTTPS端口8443无法访问的问题

别着急,咱们一步步拆解这个curl: (7)连接失败的问题——这个错误码本质是TCP连接根本没建立起来,所以我们从「应用本身→网络配置→防火墙」这几个核心方向排查:

1. 先确认Spring Boot应用真的在监听8443端口

先登录到你的CentOS7虚拟机,执行以下命令检查端口占用情况:

# 用netstat查看端口监听
sudo netstat -tulpn | grep 8443
# 或者用更现代的ss命令
sudo ss -tulpn | grep 8443

如果输出里看不到你的Java进程(Spring Boot)在监听0.0.0.0:8443或虚拟机私有IP对应的8443端口,那问题出在应用配置:

  • 要么应用没启动成功,得看日志排查;
  • 要么Spring Boot的server.address配置成了127.0.0.1(仅允许本地访问),得改成0.0.0.0或者虚拟机的私有IP。

2. 检查Vagrant的私有IP配置——你的IP有问题!

你用的192.168.56.255192.168.56.0/24网段的广播地址,这个地址是用来给整个网段发消息的,不能作为单个虚拟机的主机IP使用!这大概率是核心问题。

赶紧打开你的Vagrantfile,修改私有网络配置为同网段的正常IP,比如:

config.vm.network "private_network", ip: "192.168.56.10"

修改后执行vagrant reload重启虚拟机,再用新IP测试连接。

3. 确认CentOS7防火墙放行8443端口

你提到执行了sudo firewall-cmd --list-all-zones,如果public是默认zone,先临时放行8443端口测试:

sudo firewall-cmd --add-port=8443/tcp --zone=public

如果临时放行后能连上,再设置永久生效:

sudo firewall-cmd --add-port=8443/tcp --zone=public --permanent
sudo firewall-cmd --reload

另外别忘了确认默认zone是不是public:

sudo firewall-cmd --get-default-zone

如果默认是其他zone,要对应修改操作的zone名称。

4. 分阶段测试连通性

  • 虚拟机内部测试:在虚拟机里用curl访问自己的8443端口(跳过证书验证,因为是自签证书):
    curl -k https://192.168.56.xxx:8443
    
    如果内部都不通,那就是应用或虚拟机本地防火墙的问题;如果内部通、宿主机不通,就聚焦到Vagrant网络配置或宿主机到虚拟机的路由。
  • 宿主机ping测试:在宿主机上ping虚拟机的新IP,看看能不能通:
    ping 192.168.56.xxx
    
    如果ping不通,说明Vagrant私有网络配置有问题,回到步骤2重新检查。

内容的提问来源于stack exchange,提问作者Faisal Julaidan

火山引擎 最新活动