本文目录导读:

监控电脑服务器流量异常是保障业务连续性和网络安全的重要环节,通常可以从系统层面、网络层面以及流量分析工具三个维度入手。
以下是详细的监控方法与步骤:
基础监控:系统自带工具
适用于快速定位、临时排查,或在没有专业监控软件的情况下使用。
Linux 服务器
- iftop:实时查看网络接口的带宽占用情况,能看到具体是哪个IP和端口在通信。
- 安装:
yum install iftop或apt install iftop - 使用:
iftop -i eth0(替换为实际网卡名) - 异常特征:某个陌生IP流量异常高,或者连接数异常多。
- 安装:
- nethogs:按进程统计流量,能查到是哪个程序(如nginx、MySQL、挖矿脚本)占用了带宽。
- 使用:
nethogs eth0
- 使用:
- tcpdump:深度抓包分析,能检查数据包内容。
- 示例:抓取80端口流量并保存:
tcpdump -i eth0 port 80 -w capture.pcap
- 示例:抓取80端口流量并保存:
- netstat / ss:查看当前活跃的连接数。
- 命令:
netstat -antp | wc -l(统计连接数) - 异常特征:连接数突然暴增(如
SYN_RECV状态过多,可能为SYN Flood攻击)。
- 命令:
Windows 服务器
- 资源监视器:
- 打开:运行
resmon-> 点击“网络”选项卡。 - 功能:查看每个进程的网络I/O,以及远程IP地址的流量。
- 打开:运行
- 性能监视器:
- 添加计数器:
Network Interface\Bytes Total/sec,观察历史趋势。
- 添加计数器:
- PowerShell:
- 查看当前TCP连接:
Get-NetTCPConnection | Group-Object -Property State | Sort-Object Count
- 查看当前TCP连接:
进阶监控:流量分析与可视化
如果需要长期监控、告警并分析异常模式,建议部署专业工具。
流量采集协议
- NetFlow / sFlow:网络设备(路由器/交换机)将流量元数据(源IP、目的IP、端口、协议、包数量)发送到分析器。
- IPFIX:NetFlow的升级版。
开源流量分析软件
| 工具 | 特点 | 适用场景 |
|---|---|---|
| ntopng | Web界面美观,能实时展示Top Talkers(流量最大的IP)、应用协议、地理分布。 | 快速识别“谁在大量发送数据”。 |
| Prometheus + Grafana | 通过node_exporter采集网络流量指标,配合Grafana绘制趋势图并配置告警。 |
企业级监控体系,适合有运维基础的环境。 |
| ELK Stack | 收集系统日志、网络日志(如iptables日志),通过Kibana可视化分析。 | 结合安全事件(如登录失败+流量异常)进行关联分析。 |
| Wireshark | 深度抓包,分析单个数据包的内容。 | 排查是否是恶意软件、病毒发出的异常流量。 |
异常流量检测的关键指标
不要只看“带宽用了多少”,需要关注以下变化:
- 出入流量不对称:
- 正常情况下,出流量 ≈ 入流量(对Web服务器而言)。
- 异常:出流量远大于入流量(可能是服务器被控,对外发送数据或DDoS攻击);入流量远大于出流量(可能是遭遇DDoS攻击,或日志、数据被大量下载)。
- 特定端口流量激增:
- 比如25端口(SMTP)突然异常高,可能是服务器被当成垃圾邮件中继。
- 比如445端口(SMB)异常高,可能是勒索病毒传播(如永恒之蓝)。
- 连接数与连接频率:
- 单个IP短时间内建立大量半连接(
SYN_RECV)-> DDoS。 - 大量短连接(电信扫描特征)-> 可能是扫描或攻击前奏。
- 单个IP短时间内建立大量半连接(
- 流量与UTC时间关联:
流量高峰期是否与业务高峰期匹配?是否有异常的“深夜流量”?
实用监控告警脚本(基于 Linux + crontab)
以判断“瞬时流量是否超过阈值”为例:
#!/bin/bash
# 监控脚本:check_traffic.sh
# 获取eth0网口接收字节数(单位:字节/秒)
TRAFFIC=$(cat /sys/class/net/eth0/statistics/rx_bytes)
sleep 1
TRAFFIC_NOW=$(cat /sys/class/net/eth0/statistics/rx_bytes)
SPEED=$(( (TRAFFIC_NOW - TRAFFIC) / 1024 / 1024 )) # 转换为MB/s
THRESHOLD=500 # 阈值,单位MB/s,根据你的带宽调整
if [ $SPEED -gt $THRESHOLD ]; then
echo "警告:当前入站流量 ${SPEED}MB/s,超过阈值 ${THRESHOLD}MB/s" | mail -s "服务器流量异常告警" [your_email@example.com](mailto:your_email@example.com)
# 也可以在这里调用 top 或 nethogs 记录异常进程
fi
建议:配合 iftop -t -s 3 或 nethogs 将异常时刻的流量排名一并记录。
专项场景排查
怀疑被植入挖矿程序
- 方法:检查UDP流量(挖矿通常使用UDP 3333、4444等端口),使用
nethogs查看进程名,或使用lsof -i查看异常文件描述符。 - 命令:
tcpdump -i eth0 -c 1000 udp port 3333或查看cat /proc/net/tcp | head -20。
怀疑被作为CC攻击肉鸡
- 方法:查看HTTP请求频率与来源IP。
- 工具:
ngxtop(解析nginx日志)、goaccess(实时分析访问日志)、fail2ban(自动封禁高频IP)。
数据泄露(大流量外传)
- 方法:检查出站流量中的异常大包或DNS查询。
- 命令:
tcpdump -i eth0 src host 服务器IP and dst port ! 80 and dst port ! 443 -w outbound.pcap
总结工作流
| 步骤 | 工具/方法 | 目标 |
|---|---|---|
| 发现 | iftop/nethogs/带宽监控图 |
确认流量确实异常 |
| 定位 | ss -tunap/tcpdump |
找到异常IP或进程PID |
| 分析 | ps aux/抓包分析 |
判断是恶意软件、攻击还是业务异常 |
| 处置 | kill/iptables/重启服务 |
阻断异常流量 |
| 预防 | 部署ntopng + Prometheus告警 | 实现自动化监控与通知 |
建议: 如果流量异常持续超过1小时且无法定位原因,优先考虑拔掉网线或隔离服务器,避免数据泄露或影响其他服务。
标签: 异常告警
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。