什么是nethogs?
NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。
在Nethogs项目网站上描述是:
NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组。NetHogs不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况。这样就很容易找出哪个程序跑飞了然后突然占用你的带宽。
Nethogs在Ubuntu上安装的命令如下:
sudo apt-get install nethogs
在Centos上安装的命令如下:
yum install nethogs
源码安装:
Nethogs依赖于基于文本的接口的ncurses和用户级数据包捕获的libpcap。 所以你需要在构建nethog之前安装两个开发库。
Debian/Ubuntu
apt-get install build-essential libncurses5-dev libpcap-dev
Yum-based distro's
yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses*
Nethogs资源下载:
git clone https://github.com/raboof/nethogs
编译:
make
sudo ./src/nethogs
安装:
sudo make install
hash -r
sudo nethogs
On Debian:
sudo apt-get install checkinstall
sudo checkinstall -D make install
sudo dpkg -i nethogs*.deb
卸载:
sudo make uninstall
Nethogs使用
# nethogs -h
usage: nethogs [-V] [-b] [-d seconds] [-t] [-p] [device [device [device ...]]]
-V : 打印版本.
-d : 刷新频率. 默认 1s.
-t : 跟踪模式.
-b : bughunt模式,隐式tracemode.
-p : 嗅探在混合模式下(不推荐).
device : 指定监控网卡设备. 默认eth0
When nethogs is running, press:
q: quit
m: switch between total and kb/s mode
注意:在ubuntu下用nethogs时,使用的命令为
sudo nethogs
交互命令
以下是NetHogs的一些交互命令(键盘快捷键)
- m : 修改单位
- r : 按流量排序
- s : 按发送流量排序
- q : 退出命令提示符
man nethogs或者sudo man nethogs
Nethogs的项目主页:
https://github.com/raboof/nethogs#readme
其他相关命令链接:
- nettop shows packet types, sorts by either size or number of packets.
- ettercap is a network sniffer/interceptor/logger for ethernet
- darkstat breaks down traffic by host, protocol, etc. Geared towards analysing traffic gathered over a longer period, rather than `live' viewing.
- iftop shows network traffic by service and host
- ifstat shows network traffic by interface in a vmstat/iostat-like manner
- gnethogs GTK-based GUI (work-in-progress)
- nethogs-qt Qt-based GUI
- hogwatch A bandwidth monitor(per process) with graphs for desktop/web.