NetHogs——Linux下按进程实时统计网络带宽利用率

简介:

网上有很多适用于Linux操作系统的开源网络监视工具.比如说,你可以用命令iftop来检查带宽使用情况. netstat用来查看接口统计报告,还有top监控系统当前运行进程.但是如果你想要找一个能够按进程实时统计网络带宽利用率,那么NetHogs就是你所需要的唯一工具.

1

1

NetHogs – 网络带宽监控

什么是NetHogs?

NetHogs 是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率.

来自NetHogs项目网站:

NetHogs是一个小型的’net top’工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组.NetHogs NetHogs不需要依赖载入某个特殊的内核模块. 如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况.这样就很容易找出哪个程序跑飞了然后突然占用你的带宽.

这篇文章为你讲解了如何在Unix/Linux操作系统下如何安装和使用NetHogs按进程监控网络带宽使用率。

在RHEL,CentOS和Fedora下安装NetHogs:

要安装NetHogs,你必须要启用你所用Linux下的EPEL源.然后运行下面的yum命令下载安装NetHogs包.


 
 
  1. [root@tecmint~]# yum -y install nethogs
  2.  
  3. Loaded plugins:fastest mirror,refresh-packagekit
  4. Loading mirror speeds from cached hostfile
  5. *base: mirrors.hns.net.in
  6. *epel: mirror.nus.edu.sg
  7. *extras: mirrors.hns.net.in
  8. *rpmfusion-free-updates: mirrors.ustc.edu.cn
  9. *rpmfusion-nonfree-updates: mirror.de.leaseweb.net
  10. *updates: mirrors.hns.net.in
  11. Setting up Install Process
  12. Resolving Dependencies
  13. --> Running transaction check
  14. ---> Package nethogs.i6860:0.8.0-1.el6 will be installed
  15. --> Finished Dependency Resolution
  16.  
  17. Dependencies Resolved
  18.  
  19. ===========================================================================================================
  20. Package                Arch                Version                    Repository                    Size
  21. ===========================================================================================================
  22. Installing:
  23. nethogs                i686                0.8.0-1.el6                epel                        28k
  24.  
  25. Transaction Summary
  26. ===========================================================================================================
  27. Install       1 Package(s)
  28.  
  29. Total download size:28k
  30. Installed size:50k
  31. Downloading Packages:
  32. nethogs-0.8.0-1.el6.i686.rpm                                                        |  28kB     00:00
  33. Running rpm_check_debug
  34. Running Transaction Test
  35. Transaction Test Succeeded
  36. Running Transaction
  37.   Installing :nethogs-0.8.0-1.el6.i686                                                          1/1
  38.   Verifying  :nethogs-0.8.0-1.el6.i686                                                          1/1
  39.  
  40. Installed:
  41.   nethogs.i6860:0.8.0-1.el6
  42.  
  43. Complete!

在Ubuntu, Linux mint和Debian下安装NetHogs:

键入apt-get命令安装NetHogs包


 
 
  1. $ sudo apt-get install nethogs

样例输出


 
 
  1. tecmint@tecmint:~$ sudo apt-get install nethogs
  2. [sudo]password fortecmint:
  3. Reading package lists...Done
  4. Building dependency tree
  5. Reading state information...Done
  6. The following NEW packages will be installed:
  7. nethogs
  8. 0 upgraded,1 newly installed,0 to remove and 318 not upgraded.
  9. Need to get 27.1kB of archives.
  10. After this operation,100kB of additional disk space will be used.
  11. Get: 1 http://in.archive.ubuntu.com/ubuntu/ quantal/universe nethogs i386 0.8.0-1 [27.1 kB]
  12. Fetched 27.1kB in 1s (19.8kB/s)
  13. Selecting previously unselected package nethogs.
  14. (Reading database... 216058 files and directories currently installed.)
  15. Unpacking nethogs(from .../nethogs_0.8.0-1_i386.deb)...
  16. Processing triggers forman-db...
  17. Setting up nethogs(0.8.0-1)...

NetHogs用法

在基于RedHat系统下键入如下命令启动NetHogs工具.

要执行NetHogs你必须拥有root权限,即如图所示用sudo命令


 
 
  1. $ sudo nethogs

样例预览:

2

2

CentOS 6.3 下的NetHogs预览

3

3

Ubuntu 12.10 下的NetHogs预览

正如上图所示, send列和received列显示的是按照每个进程的流量统计.总的收发数据带宽在最下方,而且可以用交互命令控制排序,下面将要讨论这些交互命令:

NetHogs 命令行参数

以下就是NetHogs命令行的参数,用’-d’来添加刷新频率参数,`device name` 用来检测给定的某个或者某些设备的带宽(默认是eth0).例如:设置5秒钟的刷新频率,键入如下命令即可:

如果只用来监视设备(eth0)的网络带宽可以使用如下命令:


 
 
  1. $ sudo nethogs eth0

如果要同时监视eth0和eth1接口,使用以下命令即可:


 
 
  1. # nethogs eth0 eth1

 或

其他参数和用法

NetHogs 交互控制

以下是NetHogs的一些很有用的交互控制(键盘快捷键)

原文发布时间为:2014-04-06

本文来自云栖社区合作伙伴“Linux中国”


相关文章
|
7月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
395 1
|
7月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
367 1
|
8月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
231 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
9月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
639 18
|
9月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
466 5
|
10月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
1178 5
|
12月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
366 18
|
Web App开发 Linux 程序员
获取和理解Linux进程以及其PID的基础知识。
总的来说,理解Linux进程及其PID需要我们明白,进程就如同汽车,负责执行任务,而PID则是独特的车牌号,为我们提供了管理的便利。知道这个,我们就可以更好地理解和操作Linux系统,甚至通过对进程的有效管理,让系统运行得更加顺畅。
361 16
|
10月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
228 0
|
11月前
|
监控 安全 网络协议
恶意软件无处逃!国内版“Manus”AiPy开发Windows沙箱工具,进程行为+网络传输层级监控! 头像 豪气的
NImplant.exe 是一款后渗透测试工具,可实现远程管理与持久化控制。其优点包括无文件技术、加密通信和插件扩展,但也存在被检测风险及配置复杂等问题。为深入分析其行为,我们基于 aipy 开发了 Windows 沙箱工具,针对桌面上的 NImplant.exe 进行多维度分析,涵盖进程行为、网络连接(如 TCP 请求、目标 IP/域名)、文件控制等,并生成传输层监控报告与沙箱截图。结果显示,aipy 工具响应迅速,报告清晰易读,满足分析需求。

热门文章

最新文章