三款简单而优秀的Linux网络监视工具

系统 Linux
通过 iftop、 nethogs 和 vnstat 详细了解你的网络连接状态。你可以通过这三个 Linux 命令了解当前网络的大量信息。iftop 通过进程号跟踪网络连接,nethogs 快速告知你哪些进程在占用你的带宽,而 vnstat 以一个良好的轻量级守护进程在后台运行,并实时记录你的网络使用情况。

https://s5.51cto.com/oss/201801/29/8642c55bb71e8de5705415bc107ff8b3.png

通过 iftopnethogsvnstat 详细了解你的网络连接状态。

你可以通过这三个 Linux 命令了解当前网络的大量信息。iftop 通过进程号跟踪网络连接,nethogs 快速告知你哪些进程在占用你的带宽,而 vnstat 以一个良好的轻量级守护进程在后台运行,并实时记录你的网络使用情况。 

iftop

令人称赞的 iftop 可以监听您指定的网络接口,并以 top 的样式呈现。

这是一个不错的小工具,可以用于找出网络拥塞,测速和维持网络流量总量。看到自己到底在用多少带宽往往是非常惊人的,尤其是对于我们这些仍然记得电话线路、调制解调器,“高速”到令人惊叫的 kb 和实时波特率的老人们。我们在很久之前就不再使用波特率,转而钟情于比特率。波特率用于衡量信号变化,尽管有时候与比特率相同,但大多数情况下并非如此。

如果你只有一个网络接口,直接运行 iftop 即可。不过 iftop 需要 root 权限:

  1. $ sudo iftop

如果你有多个网络接口,那就指定你要监控的接口:

  1. $ sudo iftop -i wlan0

就像 top 命令一样,你可以在命令运行时更改显示选项:

  • h 切换帮助界面。
  • n 是否解析域名。
  • s 切换源地址的显示,d 则切换目的地址的显示。
  • S 是否显示端口号。
  • N 是否解析端口;若关闭解析则显示端口号。
  • t 切换文本显示界面。默认的显示方式需要 ncurses。我个人认为图 1 的显示方式在组织性和可读性都更加良好。
  • p 暂停显示更新。
  • q 退出程序。

图 1:组织性和可读性良好的文本显示。

图 1:组织性和可读性良好的文本显示。

当你切换显示设置的时候,iftop 并不会中断监测流量。当然你也可以单独监测一台主机。而这需要该主机的 IP 地址和子网掩码。现在,我很好奇 Pandora(LCTT 译注:一家美国的电台公司)能给我贫瘠的带宽带来多大的负载。因此我首先使用 dig 命令找到他们的 IP 地址:

  1. $ dig A pandora.com
  2. [...]
  3. ;; ANSWER SECTION:
  4. pandora.com. 267 IN A 208.85.40.20
  5. pandora.com. 267 IN A 208.85.40.50

那子网掩码呢?ipcalc 会告诉我们:

  1. $ ipcalc -b 208.85.40.20
  2. Address: 208.85.40.20
  3. Netmask: 255.255.255.0 = 24
  4. Wildcard: 0.0.0.255
  5. =>
  6. Network: 208.85.40.0/24

现在,将 IP 地址和子网掩码提供给 iftop

  1. $ sudo iftop -F 208.85.40.20/24 -i wlan0

很棒的不是么?而我也很惊奇地发现,Pandora 在我的网络上,每小时大约使用 500kb。并且就像大多数流媒体服务一样,Pandora 的流量在迅速增长,并依靠缓存稳定下来。

你可以使用 -G 选项对 IPv6 地址执行相同的操作。查阅友好的 man 可以帮助你了解 iftop 的其他功能,包括使用个人配置文件自定义你的默认选项,以及使用自定义过滤(请参阅 PCAP-FILTER 来获取过滤指南)。

 

nethogs

当你想要快速了解是谁在吸取你的带宽的时候,nethogs 是个快速而简单的方法。你需要以 root 身份运行并指定要监听的接口。它会给你显示大量的应用程序及其进程号,所以如果你想的话,你可以借此杀死任一进程。

  1. $ sudo nethogs wlan0
  2.  
  3. nethogs version 0.8.1
  4.  
  5. PID USER PROGRAM DEV SENT RECEIVED
  6. 7690 carla /usr/lib/firefox wlan0 12.494 556.580 KB/sec
  7. 5648 carla .../chromium-browser wlan0 0.052 0.038 KB/sec
  8. TOTAL 12.546 556.618 KB/sec

nethogs 并没有多少选项:在 kb/s、kb、b、mb之间循环,按接收和发送的数据包排序,调整刷新延迟。具体请看man nethogs,或者是运行 nethogs -h

 

vnstat

vnstat是最容易使用的网络数据收集工具。它十分轻量并且不需要 root 权限。它以守护进程在后台运行,因此可以实时地记录你的网络数据。单个 vnstat 命令就可以显示所累计的数据。

  1. $ vnstat -i wlan0
  2. Database updated: Tue Oct 17 08:36:38 2017
  3.  
  4. wlan0 since 10/17/2017
  5.  
  6. rx: 45.27 MiB tx: 3.77 MiB total: 49.04 MiB
  7.  
  8. monthly
  9. rx | tx | total | avg. rate
  10. ------------------------+-------------+-------------+---------------
  11. Oct '17 45.27 MiB | 3.77 MiB | 49.04 MiB | 0.28 kbit/s
  12. ------------------------+-------------+-------------+---------------
  13. estimated 85 MiB | 5 MiB | 90 MiB |
  14.  
  15. daily
  16. rx | tx | total | avg. rate
  17. ------------------------+-------------+-------------+---------------
  18. today 45.27 MiB | 3.77 MiB | 49.04 MiB | 12.96 kbit/s
  19. ------------------------+-------------+-------------+---------------
  20. estimated 125 MiB | 8 MiB | 133 MiB |

默认情况下它会显示所有的网络接口。使用 -i 选项来选择某个接口。也可以像这样合并多个接口的数据:

  1. $ vnstat -i wlan0+eth0+eth1

你可以通过这几种方式过滤数据显示:

  • -h 按小时显示统计信息。
  • -d 按天显示统计信息.
  • -w-m 分别按周和月份来显示统计信息。
  • 使用 -l 选项查看实时更新。

以下这条命令将会删除 wlan1 的数据库并不再监视它:

  1. $ vnstat -i wlan1 --delete

而下面这条命令将会为你的一个网络接口创建一个别名。这个例子使用了 Ubuntu 16.04 的一个有线接口名称:

  1. $ vnstat -u -i enp0s25 --nick eth0

默认情况下,vnstat 会监视 eth0。你可以在 /etc/vnstat.conf 对它进行修改,或者在你的家目录下创建你自己的个人配置文件。请参阅 man vnstat 以获取完整的指南。

你也可以安装 vnstati 来创建简单的彩图(图 2):

  1. $ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png

图 2:你可以使用vnstati来创建简单的彩图。

图 2:你可以使用vnstati来创建简单的彩图。

请参阅 man vnstati 以获取完整的选项。 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2017-11-07 10:46:38

Linux网络接口

2020-01-07 22:35:57

网络连接网络运维

2011-04-11 11:31:39

Linux加密

2023-05-19 12:16:11

Linux桌面工具

2017-12-18 10:50:54

2020-08-10 11:40:51

BashtopLinux命令

2011-01-11 12:43:00

2019-04-28 08:58:21

云存储加密开源工具

2011-01-11 13:45:20

2024-09-23 17:09:28

2024-06-06 12:57:11

2014-11-13 14:32:53

2020-01-09 10:13:26

Linux操作系统MySQL

2022-12-06 17:22:45

2014-09-26 10:39:53

Linux工具

2010-08-06 09:07:23

FlexFlex开源项目

2021-08-07 09:30:40

Kubernetes容器

2020-11-27 11:19:55

开发API工具

2020-06-12 11:06:47

Linux笔记应用开源

2022-01-03 08:04:31

API安全测试工具安全工具
点赞
收藏

51CTO技术栈公众号