3 个简单、优秀的 Linux 网络监视器
用 iftop、Nethogs 和 vnstat 了解更多关于你的网络连接。
你可以通过这三个 Linux 网络命令,了解有关你网络连接的大量信息。iftop 通过进程号跟踪网络连接,Nethogs 可以快速显示哪个在占用你的带宽,而 vnstat 作为一个很好的轻量级守护进程运行,可以随时随地记录你的使用情况。
iftop
iftop 监听你指定的网络接口,并以 top 的形式展示连接。
这是一个很好的小工具,用于快速识别占用、测量速度,并保持网络流量的总体运行。看到我们使用了多少带宽是非常令人惊讶的,特别是对于我们这些还记得使用电话线、调制解调器、让人尖叫的 Kbit 速度和真实的实时波特率的老年人来说。我们很久以前就放弃了波特率,转而使用比特率。波特率测量信号变化,有时与比特率相同,但大多数情况下不是。
如果你只有一个网络接口,可以不带选项运行 iftop。iftop 需要 root 权限:
- $ sudo iftop
当你有多个接口时,指定要监控的接口:
- $ sudo iftop -i wlan0
就像 top 一样,你可以在运行时更改显示选项。
- h切换帮助屏幕。
- n切换名称解析。
- s切换源主机显示,- d切换目标主机。
- s切换端口号。
- N切换端口解析。要全看到端口号,请关闭解析。
- t切换文本界面。默认显示需要 ncurses。我认为文本显示更易于阅读和更好的组织(图1)。
- p暂停显示。
- q退出程序。

图 1:文本显示是可读的和可组织的。
当你切换显示选项时,iftop 会继续测量所有流量。你还可以选择要监控的单个主机。你需要主机的 IP 地址和网络掩码。我很好奇 Pandora 在我那可怜的带宽中占用了多少,所以我先用 dig 找到它们的 IP 地址:
- $ dig A pandora.com
- [...]
- ;; ANSWER SECTION:
- pandora.com. 267 IN A 208.85.40.20
- pandora.com. 267 IN A 208.85.40.50
网络掩码是什么? ipcalc 告诉我们:
- $ ipcalc -b 208.85.40.20
- Address: 208.85.40.20
- Netmask: 255.255.255.0 = 24
- Wildcard: 0.0.0.255
- =>
- Network: 208.85.40.0/24
现在将地址和网络掩码提供给 iftop:
- $ sudo iftop -F 208.85.40.20/24 -i wlan0
这不是真的吗?我很惊讶地发现,我珍贵的带宽对于 Pandora 很宽裕,每小时使用大约使用 500Kb。而且,像大多数流媒体服务一样,Pandora 的流量也有峰值,其依赖于缓存来缓解阻塞。
你可以使用 -G 选项对 IPv6 地址执行相同操作。请参阅手册页了解 iftop 的其他功能,包括使用自定义配置文件定制默认选项,并应用自定义过滤器(请参阅 PCAP-FILTER 作为过滤器参考)。
Nethogs
当你想要快速了解谁占用了你的带宽时,Nethogs 是快速和容易的。以 root 身份运行,并指定要监听的接口。它显示了空闲的应用程序和进程号,以便如果你愿意的话,你可以杀死它:
- $ sudo nethogs wlan0
- NetHogs version 0.8.1
- PID USER PROGRAM DEV SENT RECEIVED
- 7690 carla /usr/lib/firefox wlan0 12.494 556.580 KB/sec
- 5648 carla .../chromium-browser wlan0 0.052 0.038 KB/sec
- TOTAL 12.546 556.618 KB/sec
Nethogs 选项很少:在 kb/s、kb、b 和 mb 之间循环;通过接收或发送的数据包进行排序;并调整刷新之间的延迟。请参阅 man nethogs,或者运行 nethogs -h。
vnstat
vnstat 是最容易使用的网络数据收集器。它是轻量级的,不需要 root 权限。它作为守护进程运行,并记录你网络统计信息。vnstat 命令显示累计的数据:
- $ vnstat -i wlan0
- Database updated: Tue Oct 17 08:36:38 2017
- wlan0 since 10/17/2017
- rx: 45.27 MiB tx: 3.77 MiB total: 49.04 MiB
- monthly
- rx | tx | total | avg. rate
- ------------------------+-------------+-------------+---------------
- Oct '17 45.27 MiB | 3.77 MiB | 49.04 MiB | 0.28 kbit/s
- ------------------------+-------------+-------------+---------------
- estimated 85 MiB | 5 MiB | 90 MiB |
- daily
- rx | tx | total | avg. rate
- ------------------------+-------------+-------------+---------------
- today 45.27 MiB | 3.77 MiB | 49.04 MiB | 12.96 kbit/s
- ------------------------+-------------+-------------+---------------
- estimated 125 MiB | 8 MiB | 133 MiB |
它默认显示所有的网络接口。使用 -i 选项选择单个接口。以这种方式合并多个接口的数据:
- $ vnstat -i wlan0+eth0+eth1
你可以通过以下几种方式过滤显示:
- -h以小时显示统计数据。
- -d以天数显示统计数据。
- -w和- -m按周和月显示统计数据。
- 使用 -l选项查看实时更新。
此命令删除 wlan1 的数据库,并停止监控它:
- $ vnstat -i wlan1 --delete
此命令为网络接口创建别名。此例使用 Ubuntu 16.04 中的一个奇怪的接口名称:
- $ vnstat -u -i enp0s25 --nick eth0
默认情况下,vnstat 监视 eth0。你可以在 /etc/vnstat.conf 中更改此内容,或在主目录中创建自己的个人配置文件。请参见 man vnstat 以获得完整的参考。
你还可以安装 vnstati 创建简单的彩色图(图2):
- $ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png

图 2:你可以使用 vnstati 创建简单的彩色图表。
有关完整选项,请参见 man vnstati。
via: https://www.linux.com/learn/intro-to-linux/2017/10/3-simple-excellent-linux-network-monitors
作者:CARLA SCHRODER 译者:geekpi 校对:wxy
3 个简单、优秀的 Linux 网络监视器的更多相关文章
- linux网络监视器
		vnstat iftop nethogs dig ipcalc 
- Linux网络编程一步一步学【转】
		转自:http://blog.chinaunix.net/uid-10747583-id-297982.html Linux网络编程一步一步学+基础 原文地址:http://blogold.chin ... 
- 理解 Linux 网络栈(1):Linux 网络协议栈简单总结
		本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + Vx ... 
- Linux网络编程:一个简单的正向代理服务器的实现
		Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到, Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该 ... 
- Linux网络编程简单示例
		linux 网络编程是通过socket(套接字)接口实现,Socket是一种文件描述符,socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭& ... 
- 网络管理监视很重要!学编程的你知道哪些不错的网络监控工具?2020 最好的Linux网络监控工具分享给你
		以下文章来源于新钛云服 翻译:侯明明 前言 虽然这个清单包含开源的和闭源的产品,但它着重于介绍基于 Linux 的网络监控工具, 少数常用工具只能在 Windows,Pandora 或其他系统上运行, ... 
- Linux 网络工具
		1 nethogs nethogs 是一个免费的工具,当要查找哪个 PID (注:即 process identifier,进程 ID) 给你的网络流量带来了麻烦时,它是非常方便的.它按每个进程来分组 ... 
- Linux 网络栈 转载
		此文章 来自 http://arthurchiao.art/blog/tuning-stack-rx-zh/ [译] Linux 网络栈监控和调优:接收数据(2016) Published ... 
- Linux网络驱动--snull
		snull是<Linux Device Drivers>中的一个网络驱动的例子.这里引用这个例子学习Linux网络驱动. 因为snull的源码,网上已经更新到适合最新内核,而我自己用的还是 ... 
随机推荐
- 《Mysql技术内幕,Innodb存储引擎》——索引与算法
			B+树 B+树中,所有记录节点都按照键值的大小顺序放在同一层叶子节点,各个叶子节点指针进行连接. 图中指针是单向的,但是书上的图是双向的,而且旋转应该也是双向才能完成) B+树插入处理 Leaf Pa ... 
- JDK自带工具介绍
			JDK工具一览表 工具名称 功能描述 appletviewer.exe 用于运行并浏览applet小程序. apt.exe 注解处理工具(Annotation Processing Tool),主要用 ... 
- Go语言学习笔记六: 循环语句
			Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ... 
- WPF样式动画Trigger.EnterActions和Trigger.ExitActions(ExitActions其实可以不做任何事情)
			这是一个鼠标移入后,控件往左移动的动画: <Style TargetType="{x:Type StackPanel}"> <Setter Property=&q ... 
- json-lib使用——JSONObject与JSONArray
			ps:看这篇博客之前首先要引入工具包json-lib-2.2.2-jdk15.jar 资源链接:百度云:链接:https://pan.baidu.com/s/1o9k7PSu 密码:00lj 一.从O ... 
- haml参考大全
			原文来自: http://blackanger.blog.51cto.com/140924/47642 Haml是一种用来描述任何XHTML web document的标记语言,它是干净,简单的. ... 
- BATJ面试必会之并发篇
			一.线程状态转换 新建(New) 可运行(Runnable) 阻塞(Blocking) 无限期等待(Waiting) 限期等待(Timed Waiting) 死亡(Terminated) 二.使用线程 ... 
- centos6.5下yum安装mysql5.5
			第一步就是看linu是否安装了mysql,经过rpm -qa|grep mysql查看到centos下安装了mysql5.1,那就开始卸载咯 2 接下来就是卸载mysql5.1了,命令:rpm -e ... 
- office中把标题之后的空格去掉
			调整列表缩进--编号之后不特别标注可以把标题之后的空格去掉 
- Mvc Moq HttpContext
			1: public class MockMvcHttpContext 2: { 3: public Moq.Mock<System.Web.HttpContextBase> Context ... 
