请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号**“智传网优”**直接开始自助**视频学习**
1. 前言
NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。
来自NetHogs项目网站:
NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组。NetHogs不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况。这样就很容易找出哪个程序跑飞了然后突然占用你的带宽。
2. 安装nethogs
CentOS默认仓库并没有包含nethogs,需要手动安装epel仓库
[root@zcwyou ~]# yum -y install epel-release
安装nethogs
[root@zcwyou ~]# yum -y install nethogs
3. 运行nethogs案例
[root@zcwyou ~]# nethogs
或者
[root@zcwyou ~]# nethogs ens160
输出结果
NetHogs version 0.8.5
PID USER PROGRAM DEV SENT RECEIVED
6065 root sshd: root@pts/0 ens160 1.032 0.515 KB/sec
1630 root /usr/bin/ssh ens160 0.082 0.227 KB/sec
1558 root /usr/bin/ssh ens160 0.082 0.206 KB/sec
1555 root sshd: root ens160 0.197 0.076 KB/sec
1606 root sshd: root ens160 0.231 0.076 KB/sec
1639 root /usr/bin/ssh ens160 0.011 0.000 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 1.635 1.099 KB/sec
在Debian/Ubuntu/Linux Mint下要执行NetHogs你必须拥有root权限:
[root@zcwyou ~]# sudo nethogs
4. 常用语法
4.1 案例1
以下就是NetHogs命令行的参数,用-d来添加刷新频率参数,device name 用来检测给定的某个或者某些设备的带宽(默认是eth0)。例如:设置5秒钟的刷新频率,键入如下命令即可:
有root权限
[root@zcwyou ~]# nethogs -d 5
没有root权限
[root@zcwyou ~]# sudo nethogs -d 5
4.2 案例2
如果只用来监视设备(eth0)的网络带宽可以使用如下命令:
有root权限:
[root@zcwyou ~]# nethogs eth0
没有root权限
[root@zcwyou ~]# sudo nethogs eth0
4.3 案例3
如果要同时监视eth0和eth1接口,使用以下命令即可:
有root权限:
[root@zcwyou ~]# nethogs eth0 eth1
没有root权限
[root@zcwyou ~]# sudo nethogs eth0 eth1
5. nethogs其他参数和用法
-d : 刷新间隔
-h : 帮助
-p : promiscious 模式
-t : trace模式
-V : 版本
交互命令
6. nethogs键盘快捷键
以下是nethogs的一些交互命令(键盘快捷键)
m : 修改单位
r : 按流量排序
s : 按发送流量排序
q : 退出命令提示符