Nethogs是一款开源的网络流量监控工具,可用于显示每个进程的带宽占用情况。这样可以更直观定位异常流量的来源。Nethogs支持IPv4和IPv6协议,支持本地网卡及PPP连接。Nethogs工具的安装方法请参阅其官方帮助文档,本文不再详述。安装完毕,直接输入nethogs启动工具即可。不带任何参数时,nethogs默认监控eth0。用户可以通过ifconfig等指令核实具体哪个网络接口(eth1、eth0)对应公网网卡。

使用示例

1、登录Linux实例。

2、执行如下命令,安装nethogs流量监控工具。

yum install nethogs -y

3、通过nethogs工具来查看网卡上进程级的流量信息。若eth 0卡流量较高,则执行如下命令,查看每个进程的网络带宽情况以及进程对应的PID,确定导致带宽跑满或跑高的具体进程。

nethogs eth0

注:nethogs默认的监控间隔是1秒,用户可以通过-d参数来设定监控间隔。例如执行如下命令,设定监控间隔为5秒。
nethogs eth0 -d 5

系统显示类似如下。


4、若进程确定是恶意程序,可以通过执行如下命令,终止进程。

kill -TERM [$Port1]

提示:如果是Web服务程序,您可以使用iftop等工具来查询具体IP来源,然后分析Web访问日志是否为正常流量。日志分析可以使用logwatch或awstats等工具进行。

显示结果说明

在nethogs监控界面,
按 s 可以按照Sent列进行排序,
r 可以按照Received列进行排序,
按 m 可以切换不同的统计单位显示,例如kb/s、kb、b、mb。
监控界面信息说明如下所示:
PID列表示相应流量关联程序的进程号。
USER列表示相应进程的所属用户。
PROGRAM列表示程序的具体执行路径。
DEV列当前监控的网络接口名称。
Sent列表示相应进程已经发送的数据流量。
Received列表示程序已经接收的数据流量。