安全组已放行却连不上 ECS?先按这 4 步排查

举报
yd_227538180 发表于 2026/11/06 10:22:35 2026/11/06
【摘要】 安全组已放行却连不上 ECS,别急着关防火墙。按安全组规则、服务监听、实例防火墙、分段测试四步排查,十分钟定位故障点。

部署在 ECS 上的服务,控制台上安全组已经放行了端口,本地却还是连不上,很多人第一反应是“再放行一次”,或者直接关掉防火墙。其实连通性是一条链路,任何一环断了都会表现为“连不上”。按下面 4 步从外到内排查,通常十分钟就能定位。

1. 先确认安全组真的放对了

安全组规则改完一般立即生效,不用重启实例,但要核对三点:

  • 方向是“入方向”,协议和端口与服务一致,例如 Web 服务是 TCP 8080,不要只放了 80;
  • 源地址不要写错,测试时可以用自己的公网 IP 加 /32,确认通了再收紧,不要长期放 0.0.0.0/0;
  • 实例确实绑定了这条安全组。如果一台实例绑定了多个安全组,要看全部规则的并集,而不是只看其中一个。

2. 再看服务有没有在监听

在实例内执行:

ss -tlnp | grep 8080
systemctl status nginx

如果 ss 没有输出,说明服务根本没在监听这个端口,问题不在网络,而在服务本身。常见原因是服务没启动、启动失败,或者只监听了 127.0.0.1。

只监听本地地址时,外部请求到不了服务。把监听地址改成 0.0.0.0 后重启服务,再用 ss -tlnp 确认。

3. 检查实例内的防火墙

云上放行了,实例内的 firewalld 或 iptables 还可能挡住:

sudo firewall-cmd --list-all
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

做这一步之前,先用 curl 127.0.0.1:8080 在本机测试。如果本机能通、外部不通,防火墙和安全组的嫌疑最大;如果本机也不通,先修服务,不要动网络规则。

不要为了省事直接关闭防火墙:关掉之后所有端口都暴露了,等于把安全组做的事又推倒了。

4. 最后用分段测试定性

  • 本机:curl 127.0.0.1:8080,验证服务本身;
  • 实例内对外:用 curl 访问任意公网地址,验证实例出方向网络;
  • 本地:curl -v 弹性公网IP:8080,验证入方向链路。

三段结果一对照,故障点就很清楚:本机不通是服务问题,本地不通但本机通是安全组或防火墙问题,实例出网也不通则要看路由和网络配置。

小结

遇到“安全组已放行却连不上”,记住顺序:安全组规则 → 服务监听 → 实例防火墙 → 分段测试。先定位再改配置,每改一步测一步,这样改动最小,也最容易回退。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。