Linux安全组拦截流量_云服务器网络排查

2次阅读

linux云服务器流量不通,首要排查安全组规则而非系统防火墙;需确认入方向规则中协议、端口、源ip配置正确,且无高优先级拒绝规则覆盖。

Linux安全组拦截流量_云服务器网络排查

Linux云服务器流量不通,很可能是安全组规则在拦截,而不是系统防火墙(如iptables或firewalld)的问题。云厂商(阿里云、腾讯云、华为云等)的“安全组”是部署在宿主机或网络层的虚拟防火墙,优先级高于操作系统内防火墙——即使你关了iptables,安全组拒绝的端口依然无法访问。

确认安全组是否放行目标端口

登录云控制台,找到对应ECS实例所绑定的安全组,检查入方向(Inbound)规则:

  • 协议类型是否匹配(如TCP、udp、ICMP)
  • 端口范围是否包含你要访问的端口(例如Web服务要放行80/443,ssh默认22)
  • 源IP是否允许(常见错误:只写了127.0.0.1本机内网IP,而实际访问来自公网;应填0.0.0.0/0或具体客户端IP段)
  • 规则优先级是否被更高序号的拒绝规则覆盖(部分平台按规则顺序匹配,拒绝规则若排在前面会直接拦截)

区分安全组与系统防火墙

别混淆两层防护:

  • 安全组:云平台网络层策略,影响所有进出该实例的流量,需在控制台配置
  • 系统防火墙(如iptables/firewalld):运行在OS内,仅控制进入操作系统的数据包;即使它放行了,安全组没开照样连不上

排查时建议先临时放开安全组所有入方向(测试用,事后收紧),再确认能否连通。如果此时通了,就锁定问题是安全组配置,而非Linux系统本身。

注意安全组的“出方向”和“入方向”含义

新手常误以为“入方向”是“我主动访问别人”,其实相反:

  • 入方向(Inbound):外部发起连接到你的服务器(如别人curl你的网站、ssh连你)→ 必须配置才能被访问
  • 出方向(Outbound):你的服务器主动访问外部(如wget下载、ping百度)→ 大多数云平台默认全放行,一般不用调

如果你的服务需要回调第三方(比如微信支付通知),对方是主动连你,仍属于“入方向”,必须开放对应端口和源IP。

验证方式要分层进行

不要只依赖telnet或curl结果下结论:

  • 从外网用telnet 服务器公网IP 端口测试连通性(看是否被安全组拦)
  • 登录服务器后,用ss -tlnp | grep 端口确认服务确实在监听(且是0.0.0.0,不是127.0.0.1)
  • 执行iptables -L -nfirewall-cmd –list-all确认系统防火墙未额外拦截
  • 检查应用日志(如nginx Error.log、sshd日志)是否有连接被拒记录

只要入方向安全组规则正确,服务监听正常,系统防火墙放行,流量就能进来。不复杂但容易忽略。

text=ZqhQzanResources