EraserKing 发表于 2015-1-5 13:14

Linux上有没有按进程统计流量的软件

是这样,自己有一台VPS(CentOS)……只跑SS。一般么,只做包转发,所以RX/TX应该差不多……
但是最近RX比TX多很多,大概是两到三倍,不清楚为什么……
而且基本每天都出现,也不知道是什么进程/服务跑的
安全性方面倒是应该没什么问题,只开了SSH/SS/IPSec VPN的端口,看了下SSH的登录记录也正常……

所以想找个工具,看看是什么时间段什么进程跑流量
要求是:
1. 能按进程
2. 能按时间统计(分钟/小时/天 倒是随意)

试了以下几个:
vnstat只有总体流量,不能分进程(但是看得出来RX>>TX)
iftop/iptraf只能实时,不能按进程统计(我也不可能24小时挂在上面看)


kumat 发表于 2015-1-5 15:23

本帖最后由 kumat 于 2015-1-5 15:30 编辑

nethogs[-d <刷新间隔时间> <网络设备名>]
相当于net版top。
开个screen的session跑着就行。随时上去看哪个进程用了最多的流量,不过无法满足你根据时间统计的要求。
nethogs下的热键:
m:可以切换数据显示:当前占用的带宽kb/s、流量总B、流量总KB、流量总MB;
r:按接受总量排序;
s:按发送总量排序;
q:退出

kumat 发表于 2015-1-5 15:55

nethogs支持-t参数,所以你可以不用screen模式,而用nohup来启动,将输出重定向到文件,配合-d参数勉强能实现你要的按时间统计输出。
例如:
nohup nethogs -t -d 60 1> /somewhere/nethogs-by-minute.log
nohup nethogs -t -d 3600 1> /somewhere/nethogs-by-hour.log

用vi打开log文件,输入:set number打开行号显示,大概你就可以看出哪个时间段出的问题了。当然自己写个小脚本分析log文件那就更好了。

EraserKing 发表于 2015-1-5 16:12

kumat 发表于 2015-1-5 15:55
nethogs支持-t参数,所以你可以不用screen模式,而用nohup来启动,将输出重定向到文件,配合-d参数勉强能实 ...

谢了 我来试试
(顺手装了个Fail2ban 干掉扫SSH端口的……)
页: [1]
查看完整版本: Linux上有没有按进程统计流量的软件