阿里云 ECS 实例网络连接数(Connection Count)异常飙升,通常意味着底层资源正在经历高并发负载、潜在的安全攻击或配置不当。作为运维和开发人员,我们需要从监控定位、业务排查、安全防御、系统调优四个维度进行系统性处理。
以下是具体的排查与解决步骤:
一、 快速确认与监控定位
在动手修改配置前,先通过阿里云控制台和内部命令确认“异常”的具体表现。
-
查看云监控指标
- 进入阿里云 ECS 控制台 -> 实例详情页 -> 云监控。
- 重点关注以下指标:
- 网络流入/流出带宽:是否达到网卡上限?
- TCP 连接数:区分
ESTABLISHED(已建立)、TIME_WAIT、CLOSE_WAIT等状态。 - CPU 使用率:是否因处理大量连接而满载?
- 磁盘 I/O:是否有异常读写?
-
登录服务器内部排查
使用 SSH 登录实例,执行以下命令获取实时数据:# 查看总 TCP 连接数 netstat -s | grep "connections established" # 按状态统计连接数(关键步骤) netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' # 查看占用连接最多的 IP 地址 netstat -anp | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -n 10 # 查看当前进程打开的文件描述符数量(Linux 一切皆文件,连接也是文件) lsof -p <PID> | wc -l常见异常模式判断:
- 大量 TIME_WAIT:通常是短连接频繁创建销毁,服务端未复用连接,或客户端发送 RST 包导致。
- 大量 CLOSE_WAIT:应用程序未正确关闭 Socket 连接,存在资源泄漏。
- 大量 SYN_RECV:可能是遭受 SYN Flood 攻击,或后端服务响应慢导致半连接堆积。
- 单 IP 极高连接数:可能是爬虫、DDoS 攻击或单一客户端轮询过于频繁。
二、 业务层排查与优化
如果排除攻击因素,多为应用架构或代码问题。
1. 检查应用日志
- 查看 Web 服务器(Nginx/Apache)或应用框架(Tomcat/Spring Boot)日志。
- 关注错误码如
499 Client Closed Request、Connection reset by peer等。 - 分析访问频率最高的 URL 路径,是否存在热点接口被恶意刷取。
2. 优化连接复用
- HTTP Keep-Alive:确保 Nginx 或网关开启了 HTTP Keep-Alive,避免每次请求都新建 TCP 连接。
keepalive_timeout 65; keepalive_requests 1000; - 数据库连接池:检查 MySQL/Redis 连接池配置。如果应用层频繁创建/销毁 DB 连接,会导致大量 TIME_WAIT。建议使用 HikariCP 等高效连接池,并设置合理的
maxLifetime和idleTimeout。
3. 调整内核参数(针对 TIME_WAIT 过多)
如果业务确实是高并发短连接场景,需优化 Linux 内核 TCP 参数:
# /etc/sysctl.conf
# 缩短 TIME_WAIT 回收时间
net.ipv4.tcp_tw_reuse = 1
# 允许重用处于 TIME-WAIT 状态的 socket
net.ipv4.tcp_fin_timeout = 30
# 减少本地端口耗尽风险,扩大可用端口范围
net.ipv4.ip_local_port_range = 1024 65535
# 增加最大文件描述符限制
fs.file-max = 1000000
执行 sysctl -p 生效。
三、 安全防护与 DDoS 缓解
如果检测到来自陌生 IP 的大规模连接,或带宽被打满,需立即启动防护。
1. 识别攻击类型
- CC 攻击(应用层):单个 IP 高频请求特定接口。
- SYN Flood(传输层):大量 SYN 包未完成三次握手。
- UDP/ICMP Flood:带宽型攻击。
2. 阿里云防护产品介入
- 基础 DDoS 防护:阿里云默认提供 5Gbps 免费清洗能力,大部分小流量攻击会自动被云端拦截,无需操作。
- Web 应用防火墙(WAF):
- 如果怀疑是 CC 攻击,接入 WAF。
- 开启“频率控制”规则,限制同一 IP 每秒请求次数。
- 启用“智能人机验证”,对可疑流量弹出验证码。
- DDoS 高防 IP:
- 如果遭受超过 5Gbps 的大流量攻击,且影响业务可用性,需购买 DDoS 高防 IP 并切换 DNS 解析至高防 IP。
- 高防 IP 可在云端清洗流量后再回源到 ECS。
3. 安全组与 ACL 限制
- 安全组(Security Group):
- 临时收紧入方向规则,仅允许必要端口(如 80/443)和已知管理 IP 访问。
- 禁用不必要的端口(如 3306、6379 直接暴露公网)。
- 网络 ACL:在 VPC 层面设置更细粒度的黑白名单。
4. 主机级防火墙(iptables/firewalld)
- 如果攻击源明确,可在主机层封禁恶意 IP:
iptables -I INPUT -s <恶意IP> -j DROP - 使用
fail2ban自动封禁频繁失败连接的 IP。
四、 系统资源扩容与架构升级
如果业务合法增长导致连接数上升,需考虑容量规划。
-
弹性伸缩(ESS)
- 配置弹性伸缩组,当 CPU 使用率 > 70% 或连接数超过阈值时,自动增加 ECS 实例。
- 结合 SLB(负载均衡)实现流量分发,避免单点过载。
-
升级实例规格
- 检查当前实例的 vCPU 和内存 是否瓶颈。
- 对于高网络吞吐场景,选择支持 增强型网络(Enhanced Network) 的实例规格族(如 g7、r7、c7 系列),它们提供更高的pps(包每秒)和连接数处理能力。
-
CDN 提速
- 将静态资源(图片、CSS、JS)迁移至 CDN,减轻 ECS 带宽压力和连接数。
五、 总结与建议流程
| 步骤 | 行动项 | 工具/方法 |
|---|---|---|
| 1 | 确认现象 | 云监控、netstat、ss |
| 2 | 区分类型 | 是 TIME_WAIT/CLOSE_WAIT(应用问题)还是 SYN_RECV(攻击/响应慢) |
| 3 | 短期止血 | 安全组封禁恶意 IP、重启异常进程、启用 WAF 频率限制 |
| 4 | 中期优化 | 调整内核参数、优化应用连接池、启用 Keep-Alive |
| 5 | 长期治理 | 引入 CDN、SLB、弹性伸缩、架构微服务化 |
特别提醒:
- 不要盲目重启:在未备份日志和连接状态的情况下,重启可能导致数据丢失或业务中断。应先尝试优雅重启或隔离故障节点。
- 合规性:所有防护操作需符合《网络安全法》要求,保留日志至少 6 个月,以便事后审计。
- 成本意识:DDoS 高防和 WAF 为付费服务,建议先评估攻击规模和业务重要性,再决定是否采购。
通过以上步骤,可系统化解决 ECS 连接数异常问题,兼顾稳定性与安全性。
CLOUD云枢