如何查看云服务器的TCP连接?
云服务器TCP连接监控全攻略:从基础到高阶排查技巧
在云计算时代,掌握服务器TCP连接状态已成为每位运维人员的必修课。本文将详细介绍6种主流操作系统下的TCP连接查看方法,并深入解析连接状态的秘密。
一、为什么需要监控TCP连接?
TCP连接状态直接反映服务器的网络健康状况:
- 性能瓶颈定位:异常连接可能导致服务响应延迟
- 安全威胁发现:大量TIME_WAIT状态可能遭遇SYN Flood攻击
- 资源优化依据:CLOSE_WAIT堆积提示应用未正确关闭连接
二、Linux系统查看方法
1. netstat命令(经典工具)
netstat -natp | grep -i '80\|443'
关键参数说明:
参数 | 作用 |
---|---|
-n | 显示数字地址 |
-a | 显示所有连接 |
-t | 仅显示TCP连接 |
-p | 显示进程信息 |
2. ss命令(推荐替代方案)
ss -s # 查看统计摘要 ss -tulnp # 详细连接列表
相比netstat的优势:执行速度更快,支持更多过滤条件
三、Windows系统专用方法
1. 图形化工具
任务管理器 → 性能选项卡 → 打开资源监视器 → 网络标签
2. 命令行工具
netstat -ano | findstr "ESTABLISHED"
使用tasklist | findstr "PID"
可进一步定位进程
四、高阶监控技巧
1. 实时监控脚本
watch -n 1 'netstat -an | awk '\''/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'\'''
2. 连接数报警设置
使用Zabbix监控项:
net.tcp.port[,80,ESTABLISHED]
3. TCP状态机解读

重点关注:
- SYN_RECV:半连接队列堆积
- FIN_WAIT2:可能遭遇连接劫持
五、常见问题排查案例
案例1:CLOSE_WAIT堆积
现象:服务器出现大量CLOSE_WAIT状态连接
解决方案:
- 检查应用是否未调用close()方法
- 调整内核参数:
net.ipv4.tcp_keepalive_time
案例2:端口耗尽
现象:无法建立新连接,报"Address already in use"
解决方案:
- 缩短TIME_WAIT超时:
net.ipv4.tcp_fin_timeout=30
- 启用端口复用:
net.ipv4.tcp_tw_reuse=1
六、最佳实践建议
- 生产环境推荐使用
ss
替代netstat
- 建立TCP连接数基线,设置合理阈值
- 结合tcpdump进行包级分析:
tcpdump -i eth0 'tcp port 80'
通过持续监控TCP连接状态,可以提前发现80%以上的网络性能问题,建议将相关命令集成到日常巡检脚本中。