网络流量监控
Linux 系统中有各种查看网络流量的工具,比如 sar、iftop、nethogs 等,它们可以从不同的纬度来分析系统中流量信息。
Sar
sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告。sar 可以从网络接口层面来分析数据包的收发情况、错误信息等。
执行如下命令,使用 sar 每 1 秒统计一次网络接口的活动状况,连续统计 5 次。
sar -n DEV 1 5
显示结果主要字段说明
IFACE:网络接口名称。
rxpck/s、txpck/s:每秒接收或发送的数据包数量。
rxkB/s、txkB/s:每秒接收或发送的字节数,以 kB/s 为单位。
rxcmp/s、txcmp/s:每秒接收或发送的压缩过的数据包数量。
rxmcst/s:每秒接收到的多播数据包。
Iftop
iftop 是 Linux 系统中一个免费的网卡实时流量监控工具,可以监控包括指定网卡的实时流量、端口连接信息、反向解析 IP 等信息。
执行如下命令,查看详细端口流量占用情况。
iftop -i eth0 -P
执行如下命令,查看端口对应的进程。
netstat -tunlp |grep [$Port]
确认对应服务后,您可以通过停止服务或使用 iptables 服务来对指定地址进行处理。例如屏蔽 IP 地址或限速,以保证服务器带宽能够正常使用。
Nethogs
Nethogs 是一款开源的网络流量监控工具,可用于显示每个进程的带宽占用情况。这样可以更直观定位异常流量的来源。Nethogs 支持 IPv4 和 IPv6 协议,支持本地网卡及 PPP 连接。直接输入 nethogs 启动工具即可。不带任何参数时,Nethogs 默认监控 eth0。用户可以通过 ifconfig 等指令核实具体哪个网络接口(eth1、eth0)对应公网网卡。
查看网卡上进程级的流量信息。
nethogs eth1
若确定进程是恶意程序,可以通过执行如下命令,终止进程。
kill -TERM [$Port1]