云服务器端口不通别乱重装:安全组与防火墙排查四步法
前言
很多新手第一次在云服务器上部署服务都会遇到:服务明明启动了,服务器本机执行 curl 127.0.0.1:8080 能通,从自己电脑上访问却一直超时。第一反应往往是“系统出问题了,重装吧”。其实九成情况是端口被拦了,根本不用重装。按下面四步排查,十分钟就能定位。
第一步:确认服务真的在监听
先确认服务绑定了正确的地址和端口:
ss -tlnp | grep 8080
判断标准:
- 输出里看到 0.0.0.0:8080 或 :::8080 → 监听所有网卡,正常;
- 只看到 127.0.0.1:8080 → 服务只绑了回环地址,外网永远连不上。去改服务配置(如应用的 host 参数、nginx 的 listen),改成 0.0.0.0 后重启服务;
- 什么都没输出 → 服务没起来或端口号写错了,先把服务本身跑起来。
第二步:检查云厂商安全组
云服务器在云平台还有一层安全组,这是最常见的“拦路虎”。以华为云为例:控制台 → 找到实例 → 安全组 → 配置规则,检查入方向规则:
- 协议:TCP 还是 UDP?Web 服务、SSH、数据库用的都是 TCP,选错协议等于没放行;
- 端口:端口范围是否包含你的服务端口(比如 8080);
- 源地址:0.0.0.0/0 表示允许所有 IP;如果填了特定 IP,只有那个 IP 能连;
- 方向:必须是“入方向”规则,出方向默认全放行不用管。
判断标准:有一条入方向、协议正确、端口覆盖、源地址合适的规则,才算真正放行。
第三步:检查系统防火墙
安全组放行了,系统里面还有一道防火墙。Ubuntu/Debian 一般是 ufw,CentOS/Rocky 一般是 firewalld,也可能是裸 iptables:
sudo ufw status numbered # 看 ufw 状态和规则
sudo ufw allow 8080/tcp # 放行 8080/tcp
sudo firewall-cmd --list-all # 看 firewalld 当前规则
sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
sudo iptables -L INPUT -n --line-numbers # 裸 iptables 看 INPUT 链
判断标准:规则里能看到你的端口被 ACCEPT;如果 ufw 显示 inactive,且 iptables 里也没有 DROP 规则,说明系统防火墙没拦,问题不在这一层。
第四步:从外网验证端口
前三步都确认没问题,最后从外网(你自己的电脑)验证端口到底通没通:
telnet 你的服务器公网IP 8080
nc -vz 你的服务器公网IP 8080
判断标准:telnet 显示 Connected 或 nc 显示 succeeded → 端口通了,问题在应用层(比如反向代理配置、域名解析);连接超时 → 回到第二步、第三步重新核对,多半是某条规则写错了。
小结
记住这个顺序:服务监听 → 安全组 → 系统防火墙 → 外网验证。每次只动一层,改完测一次,十分钟定位。端口不通是云服务器最常见的问题之一,养成按层排查的习惯,比重装系统快得多,也不会丢数据。
- 点赞
- 收藏
- 关注作者
评论(0)