Linux网络进程监控工具nethogs

简介:   Linux网络监控工具nethogs 标签: 监控工具linux 2015-12-17 22:06 448人阅读 评论(0) 收藏 举报  分类: linux(40)  版权声明:本文为博主原创文章,未经博主允许不得转载。
 

Linux网络监控工具nethogs

标签: 监控工具linux
  448人阅读  评论(0)  收藏  举报
  分类:

Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况。它支持 IPv4 和 IPv6 协议、支持本地网卡及 PPP 链接。

有些时候服务器莫名其妙的向外发送大量的包,占用大量带宽,导致其他服务器受到影响。那么在流量异常的情况下,如何查看每个进程使用的带宽呢?可以使用nethogs工具来查看。

当然还有一些其他宽带分析工具,需要的同学可以多了解了解,有个帖子 http://os.51cto.com/art/201404/435279.htm 做了介绍。按应用分析还是比较常见,所以我一般使用nethogs,关于nethogs的安装下面做下说明:

1、下载 
地址: http://sourceforge.net/projects/nethogs/files/nethogs/ 
下载安装包:nethogs-0.8.0.tar.gz (38.0 kB)

2、安装

yum install ncurses* 
tar -zxvf nethogs-0.8.0.tar.gz 
cd nethogs 
make && make install

如果报错如下:

[root@localhost nethogs]# make && make install 
g++ -g -Wall -Wextra -c packet.cpp 
g++ -g -Wall -Wextra -c connection.cpp 
g++ -g -Wall -Wextra -c process.cpp 
g++ -g -Wall -Wextra -c refresh.cpp 
refresh.cpp:9: warning: unused parameter ‘i’ 
cc -g -Wall -Wextra -c decpcap.c 
decpcap.c:7:18: error: pcap.h: No such file or directory 
In file included from decpcap.c:8: 
decpcap.h:34: error: expected specifier-qualifier-list before ‘pcap_t’ 
decpcap.c:14: error: expected ‘)’ before ‘*’ token 
decpcap.c: In function ‘dp_open_offline’: 
decpcap.c:48: error: ‘pcap_t’ undeclared (first use in this function) 
decpcap.c:48: error: (Each undeclared identifier is reported only once 
decpcap.c:48: error: for each function it appears in.) 
decpcap.c:48: error: ‘temp’ undeclared (first use in this function) 
decpcap.c:48: warning: implicit declaration of function ‘pcap_open_offline’ 
decpcap.c:55: warning: implicit declaration of function ‘dp_fillhandle’ 
decpcap.c: In function ‘dp_open_live’: 
decpcap.c:60: error: ‘pcap_t’ undeclared (first use in this function) 
decpcap.c:60: error: ‘temp’ undeclared (first use in this function) 
decpcap.c:60: warning: implicit declaration of function ‘pcap_open_live’ 
decpcap.c: In function ‘dp_addcb’: 
decpcap.c:74: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c: In function ‘dp_parse_tcp’: 
decpcap.c:84: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:86: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:87: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c: In function ‘dp_parse_ip’: 
decpcap.c:99: error: dereferencing pointer to incomplete type 
decpcap.c:103: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:105: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:106: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c: In function ‘dp_parse_ip6’: 
decpcap.c:126: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:128: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:129: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c: In function ‘dp_parse_ethernet’: 
decpcap.c:150: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:152: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:153: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c: In function ‘dp_parse_ppp’: 
decpcap.c:196: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:198: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:199: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c: In function ‘dp_parse_linux_cooked’: 
decpcap.c:238: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:240: error: ‘struct dp_handle’ has no member named ‘callback’ 
decpcap.c:241: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c: In function ‘dp_pcap_callback’: 
decpcap.c:270: error: ‘struct dp_handle’ has no member named ‘userdata_size’ 
decpcap.c:271: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c:271: error: ‘struct dp_handle’ has no member named ‘userdata_size’ 
decpcap.c:273: error: ‘struct dp_handle’ has no member named ‘linktype’ 
decpcap.c:274: error: ‘DLT_EN10MB’ undeclared (first use in this function) 
decpcap.c:277: error: ‘DLT_PPP’ undeclared (first use in this function) 
decpcap.c:280: error: ‘DLT_LINUX_SLL’ undeclared (first use in this function) 
decpcap.c:283: error: ‘DLT_RAW’ undeclared (first use in this function) 
decpcap.c:284: error: ‘DLT_NULL’ undeclared (first use in this function) 
decpcap.c:289: error: ‘struct dp_handle’ has no member named ‘linktype’ 
decpcap.c: In function ‘dp_dispatch’: 
decpcap.c:296: error: ‘struct dp_handle’ has no member named ‘userdata’ 
decpcap.c:297: error: ‘struct dp_handle’ has no member named ‘userdata_size’ 
decpcap.c:298: warning: implicit declaration of function ‘pcap_dispatch’ 
decpcap.c:298: error: ‘struct dp_handle’ has no member named ‘pcap_handle’ 
decpcap.c: In function ‘dp_setnonblock’: 
decpcap.c:302: warning: implicit declaration of function ‘pcap_setnonblock’ 
decpcap.c:302: error: ‘struct dp_handle’ has no member named ‘pcap_handle’ 
decpcap.c: In function ‘dp_geterr’: 
decpcap.c:307: warning: implicit declaration of function ‘pcap_geterr’ 
decpcap.c:307: error: ‘struct dp_handle’ has no member named ‘pcap_handle’ 
make: * [decpcap.o] Error 1

执行命令

yum install libpcap-dev* libncurses5-dev*

然后再重新编译安装,如下:

[root@localhost nethogs]# make && make install 
cc -g -Wall -Wextra -c decpcap.c 
decpcap.c: In function ‘dp_open_live’: 
decpcap.c:60: warning: passing argument 5 of ‘pcap_open_live’ discards qualifiers from pointer 
/usr/include/pcap/pcap.h:349: note: expected ‘char ’ but argument is of type ‘const char ’ 
g++ -g -Wall -Wextra -c cui.cpp -DVERSION=\”0\” -DSUBVERSION=\”8\” -DMINORVERSION=\”0\” 
g++ -g -Wall -Wextra -c inode2prog.cpp 
g++ -g -Wall -Wextra -c conninode.cpp 
g++ -c -o devices.o devices.cpp 
g++ -g -Wall -Wextra nethogs.cpp packet.o connection.o process.o refresh.o decpcap.o cui.o inodee.o devices.o -o nethogs -lpcap -lm -lncurses -DVERSION=\”0\” -DSUBVERSION=\”8\” -DMINORVERSION= 
g++ -g -Wall -Wextra decpcap_test.cpp decpcap.o -o decpcap_test -lpcap -lm 
install -d -m 755 /usr/local/sbin 
install -m 755 nethogs /usr/local/sbin 
install -d -m 755 /usr/local/share/man/man8/ 
install -m 644 nethogs.8 /usr/local/share/man/man8/

这样已经算是成功安装完成,输入命令 nethogs 即可查看应用的宽带占用情况。 
下图是我开启了2个命令窗口做的测试: 
图片

目录
相关文章
|
5月前
|
安全 网络协议 算法
Nmap网络扫描工具详细使用教程
Nmap 是一款强大的网络发现与安全审计工具,具备主机发现、端口扫描、服务识别、操作系统检测及脚本扩展等功能。它支持多种扫描技术,如 SYN 扫描、ARP 扫描和全端口扫描,并可通过内置脚本(NSE)进行漏洞检测与服务深度枚举。Nmap 还提供防火墙规避与流量伪装能力,适用于网络管理、渗透测试和安全研究。
863 1
|
6月前
|
Web App开发 API 虚拟化
Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
457 15
Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
|
7月前
|
监控 安全 网络安全
网络安全工具及其使用方法:保护数字安全的第一道防线
在信息时代,网络攻击变得日益复杂且频繁,保护个人和企业数据安全的重要性日益凸显。幸运的是,各种网络安全工具为用户提供了有效的防护手段。从防火墙到密码管理器,这些工具覆盖了威胁检测、攻击防御和数据保护的方方面面。本文将介绍几款常用的网络安全工具,并提供其使用方法,以帮助您构建强大的网络安全防线。
260 1
|
7月前
|
监控 数据可视化 Java
VMware Aria Operations for Networks 6.14 - 网络和应用监控工具
VMware Aria Operations for Networks 6.14 - 网络和应用监控工具
160 0
VMware Aria Operations for Networks 6.14 - 网络和应用监控工具
|
8月前
|
运维 监控 Linux
网络延迟监测工具选择(第一篇)
**WGCLOUD**是一款开源免费的跨平台运维监控工具,支持Windows、Linux、MacOS等系统,具备网络延迟监测功能。其内置的**PING监测**模块可实时ping目标IP,图形化展示延迟趋势,并在目标IP不可达时发送告警通知。支持分组管理,操作简单便捷,适合运维人员高效监控网络状态。
|
8月前
|
监控 Shell Linux
Linux进程控制(详细讲解)
进程等待是系统通过调用特定的接口(如waitwaitpid)来实现的。来进行对子进程状态检测与回收的功能。
193 0
|
8月前
|
存储 负载均衡 算法
Linux2.6内核进程调度队列
本篇文章是Linux进程系列中的最后一篇文章,本来是想放在上一篇文章的结尾的,但是想了想还是单独写一篇文章吧,虽然说这部分内容是比较难的,所有一般来说是简单的提及带过的,但是为了让大家对进程有更深的理解与认识,还是看了一些别人的文章,然后学习了学习,然后对此做了总结,尽可能详细的介绍明白。最后推荐一篇文章Linux的进程优先级 NI 和 PR - 简书。
261 0
|
8月前
|
存储 Linux Shell
Linux进程概念-详细版(二)
在Linux进程概念-详细版(一)中我们解释了什么是进程,以及进程的各种状态,已经对进程有了一定的认识,那么这篇文章将会继续补全上篇文章剩余没有说到的,进程优先级,环境变量,程序地址空间,进程地址空间,以及调度队列。
157 0
|
11月前
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
11月前
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
983 5