腾讯云上新建的一台机器,安全组里 80 和 443 的入站都放开了,外部访问依旧超时,机器上 curl 外网接口也全部卡住,ping 网关却是通的。
一开始怀疑是「规则只加在了默认安全组,实例实际绑的是另一个新建的安全组」,查了一圈,方向不对。
这类报错背后常见的原因有几处,逐个排除就行。安全组默认的出站规则是拒绝所有,回来和出去的包都被丢掉。另一种情况是只放开了 TCP,DNS 用的 UDP 53 没有放行,域名都解析不了。
还有一种情况,出站规则里目标写成了具体 IP,访问其他地址依然被拒。
动手时先确认实例绑的到底是哪个安全组
curl -s http://metadata.tencentyun.com/latest/meta-data/security-groups
接着在本机验证出站和 DNS 是否正常
curl -sv https://www.baidu.com --max-time 5
再往下放行全部出站流量作为对照
ping -c 2 8.8.8.8 && curl -s ifconfig.me
等前面都确认过,再按业务需要收回出站,只保留必要目的
ss -lntp | grep -E '80|443'
别只看报错消失,验证要多做一步。本机 curl 外网接口在 2 秒内返回,DNS 解析正常,实例绑定的安全组里能看到放行后的出站规则。
容易忽略的是,先放开全部出站验证链路,再逐步收窄,比一上来就精确到 IP 快得多;改完记得确认实例绑定的安全组 ID,多安全组叠加时以并集生效。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
