<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="三个简单而优秀的 Linux 网络监视器">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2018-05-30 10:47<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
三个简单而优秀的 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.20Address: 208.85.40.20Netmask: 255.255.255.0 = 24Wildcard: 0.0.0.255=&gt;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 ，或者运行 nthogs -h 。

vnstat
vnstat 是最容易使用的网络数据收集器。它是轻量级的，不需要 root 权限。它作为守护进程运行，并记录你网络统计信息。它默认显示所有的网络接口。使用 -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 。
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
