您的位置 首页 厂商

20个你或许不知道的 Linux 网络工具

如果要在你的系统上监控网络,那么使用命令行工具是非常实用的,并且对于 Linux 用户来说,有着许许多多现成的工具可以使用,如: nethogs, ntopng,

假设要在你的体系上监控网络,那么运用指令行东西是十分有用的,而且关于 Linux 用户来说,有着许许多多现成的东西能够运用,如: nethogs, ntopng, nload, iftop, iptraf, bmon, slurm, tcptrack, cbm, netwatch, collectl, trafshow, cacti, etherape, ipband, jnettop, netspeed 以及 speedometer。

鉴于世上有着许多的 Linux 专家和开发者,明显还存在其他的网络监控东西,但在这篇教程中,我不计划将它们悉数包括在内。

上面列出的东西都有着自己的共同之处,但归根到底,它们都做着监控网络流量的作业,仅仅经过各种不同的办法。例如 nethogs 能够被用来展现每个进程的带宽运用情况,以防你想知道究竟是哪个运用在耗费了你的整个网络资源; iftop 能够被用来展现每个套接字衔接的带宽运用情况,而像 nload 这类的东西能够协助你得到有关整个带宽的信息。

1) nethogs

nethogs 是一个免费的东西,当要查找哪个 PID (注:即 process identifier,进程 ID) 给你的网络流量带来了费事时,它是十分便利的。它按每个进程来分组带宽,而不是像大多数的东西那样依照每个协议或每个子网来区分流量。它功用丰厚,一起支撑 IPv4 和 IPv6,而且我认为,若你想在你的 Linux 主机上确认哪个程序正耗费着你的悉数带宽,它是来做这件事的最佳的程序。

一个 Linux 用户能够运用 nethogs 来显现每个进程的 TCP 下载和上传速率,能够运用指令 nethogs eth0 来监控一个指定的设备,上面的 eth0 是那个你想获取信息的设备的称号,你还能够得到有关正在传输的数据的传输速率信息。

对我而言, nethogs 是十分简略运用的,或许是由于我十分喜爱它,以致于我总是在我的 Ubuntu 12.04 LTS 机器中运用它来监控我的网络带宽。

例如要想运用稠浊形式来嗅探,能够像下面展现的指令那样运用选项 -p:

nethogs -p wlan0

假设你想更多地了解 nethogs 并深化探究它,那么请毫不犹豫地阅览咱们做的关于这个网络带宽监控东西的整个教程。

2) nload

nload 是一个控制台运用,能够被用来实时地监控网络流量和带宽运用情况,它还经过供给两个简略易懂的图表来对流量进行可视化。这个绝妙的网络监控东西还能够在监控过程中切换被监控的设备,而这能够经过按左右箭头来完结。

正如你在上面的截图中所看到的那样,由 nload 供给的图表是十分简略了解的。nload 供给了有用的信息,也展现了比如被传输数据的总量和最小/最大网络速率等信息。

而更酷的是你只需求直接运转 nload 这个东西就行,这个指令是十分的矮小且易记的:

nload

我很坚信的是:咱们关于怎么运用 nload 的具体教程将协助到新的 Linux 用户,乃至能够协助那些正寻觅关于 nload 信息的内行。

3) slurm

slurm 是另一个 Linux 网络负载监控东西,它以一个不错的 ASCII 图来显现成果,它还支撑许多按键用以交互,例如 c 用来切换到经典形式, s 切换到分图形式, r 用来重绘屏幕, L 用来启用 TX/RX 灯(注:TX,发送流量;RX,接纳流量) ,m 用来在经典分图形式和大图形式之间进行切换, q 退出 slurm。

在网络负载监控东西 slurm 中,还有许多其它的按键可用,你能够很简略地运用下面的指令在 man 手册中学习它们。

man slurm

slurm 在 Ubuntu 和 Debian 的官方软件库房中能够找到,所以运用这些发行版别的用户能够像下面展现的那样,运用 apt-get 装置指令来轻松地下载它:

sudo apt-get install slurm

咱们现已在一个教程中对 slurm 的运用做了介绍,不要忘掉和其它运用 Linux 的朋友共享这些常识。

4) iftop

当你想显现衔接到网卡上的各个主机的带宽运用情况时,iftop 是一个十分有用的东西。依据 man 手册,iftop 在一个指定的接口或在它能够找到的第一个接口(假设没有任何特殊情况,它应该是一个对外的接口)上监听网络流量,而且展现出一个表格来显现当时的一对主机间的带宽运用情况。

经过在虚拟终端中运用下面的指令,Ubuntu 和 Debian 用户能够在他们的机器中轻易地装置 iftop:

sudo apt-get install iftop

在你的机器上,能够运用下面的指令经过 yum 来装置 iftop:

yum -y install iftop

5) collectl

collectl 能够被用来搜集描绘当时体系情况的数据,而且它支撑如下两种形式:

记载形式

回放形式

记载形式 答应从一个正在运转的体系中读取数据,然后将这些数据要么显现在终端中,要么写入一个或多个文件或一个套接字中。

回放形式

依据 man 手册,在这种形式下,数据从一个或多个由记载形式生成的数据文件中读取。

Ubuntu 和 Debian 用户能够在他们的机器上运用他们默许的包管理器来装置 colletcl。下面的指令将为他们做这个作业:

sudo apt-get install collectl

还能够运用下面的指令来装置 collectl, 由于关于这些发行版别(注:这儿指的是用 yum 作为包管理器的发行版别),在它们官方的软件库房中也含有 collectl:

yum install collectl

6) Netstat

Netstat 是一个用来监控传入和传出的网络数据包计算数据的接口计算数据指令行东西。它会显现 TCP 衔接 (包括上传和下行),路由表,及一系列的网络接口(网卡或许SDN接口)和网络协议计算数据。

Ubuntu 和 Debian 用户能够在他们的机器上运用默许的包管理器来装置 netstat。Netsta 软件被包括在 net-tools 软件包中,并能够在 shell 或虚拟终端中运转下面的指令来装置它:

sudo apt-get install net-tools

CentOS, Fedora, RHEL 用户能够在他们的机器上运用默许的包管理器来装置 netstat。Netstat 软件被包括在 net-tools 软件包中,并能够在 shell 或虚拟终端中运转下面的指令来装置它:

yum install net-tools

运转下面的指令运用 Netstat 来轻松地监控网络数据包计算数据:

netstat

更多的关于 netstat 的信息,咱们能够简略地在 shell 或终端中键入 man netstat 来了解:

man netstat

7) Netload

netload 指令只展现一个关于当时网络荷载和自从程序运转之后传输数据总的字节数意图扼要陈述,它没有更多的功用。它是 netdiag 软件的一部分。

咱们能够在 fedora 中运用 yum 来装置 Netload,由于它在 fedora 的默许软件库房中。但假设你运转的是 CentOS 或 RHEL,则咱们需求装置 rpmforge 软件库房。

# yum install netdiag

Netload 是默许库房中 netdiag 的一部分,咱们能够轻易地运用下面的指令来运用 apt 包管理器装置 netdiag:

$ sudo apt-get install netdiag

为了运转 netload,咱们需求保证挑选了一个正在作业的网络接口的称号,如 eth0, eh1, wlan0, mon0等,然后在 shell 或虚拟终端中运转下面的指令:

$ netload wlan2

留意: 请将上面的 wlan2 替换为你想运用的网络接口称号,假设你想经过扫描了解你的网络接口称号,能够在一个虚拟终端或 shell 中运转 ip link show 指令。

8) Nagios

Nagios 是一个抢先且功用强大的开源监控体系,它使得网络或体系管理员能够在服务器的各种问题影响到服务器的首要业务之前,发现并处理这些问题。 有了 Nagios 体系,管理员便能够在一个单一的窗口中监控长途的 Linux 、Windows 体系、交换机、路由器和打印机等。它会显现出重要的正告并指出在你的网络或服务器中是否呈现某些毛病,这能够间接地协助你在问题发生前就着手履行弥补举动。

Nagios 有一个 web 界面,其中有一个图形化的活动监督器。经过阅读网页 http://localhost/nagios/ 或 http://localhost/nagios3/ 便能够登录到这个 web 界面。假设你在长途的机器上进行操作,请运用你的 IP 地址来替换 localhost,然后键入用户名和暗码,咱们便会看到如下图所展现的信息:

9) EtherApe

EtherApe 是一个针对 Unix 的图形化网络监控东西,它仿照了 etherman 软件。它支撑链路层、IP 和 TCP 等形式,并支撑以太网, FDDI, 令牌环, ISDN, PPP, SLIP 及 WLAN 设备等接口,以及一些封装格局。主机和衔接跟着流量和协议而改动其尺度和色彩。它能够过滤要展现的流量,并可从一个文件或运转的网络中读取数据包。

在 CentOS、Fedora、RHEL 等 Linux 发行版别中装置 etherape 是一件简略的事,由于在它们的官方软件库房中就能够找到 etherape。咱们能够像下面展现的指令那样运用 yum 包管理器来装置它:

yum install etherape

咱们也能够运用下面的指令在 Ubuntu、Debian 及它们的衍生发行版别中运用 apt 包管理器来装置 EtherApe :

sudo apt-get install etherape

在 EtherApe 装置到你的体系之后,咱们需求像下面那样以 root 权限来运转 etherape:

sudo etherape

然后, etherape 的 图形用户界面 便会被履行。接着,在菜单上面的 捕捉 选项下,咱们能够挑选 形式(IP,链路层,TCP) 和 接口。悉数设定结束后,咱们需求点击 开端 按钮。接着咱们便会看到相似下面截图的东西:

10) tcpflow

tcpflow 是一个指令行东西,它能够捕捉 TCP 衔接(流)的部分传输数据,并以一种便利协议剖析或除错的方法来存储数据。它重构了实践的数据流并将每个流存储在不同的文件中,以备日后的剖析。它能辨认 TCP 序列号并能够正确地重构数据流,不管是在重发仍是乱序发送情况下。

经过 apt 包管理器在 Ubuntu 、Debian 体系中装置 tcpflow 是很简略的,由于默许情况下在官方软件库房中能够找到它。

$ sudo apt-get install tcpflow

咱们能够运用下面的指令经过 yum 包管理器在 Fedora 、CentOS 、RHEL 及它们的衍生发行版别中装置 tcpflow:

# yum install tcpflow

假设在软件库房中没有找到它或不能经过 yum 包管理器来装置它,则咱们需求像下面展现的那样从 http://pkgs.repoforge.org/tcpflow/ 上手动装置它:

假设你运转 64 位的 PC:

# yum install –nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.x86_64.rpm

假设你运转 32 位的 PC:

# yum install –nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.i686.rpm

咱们能够运用 tcpflow 来捕捉悉数或部分 tcp 流量,并以一种简略的方法把它们写到一个可读的文件中。下面的指令就能够完结这个作业,但咱们需求在一个空目录中运转下面的指令,由于它将创立比如 x.x.x.x.y-a.a.a.a.z 格局的文件,运转之后,只需按 Ctrl-C 便可中止这个指令。

$ sudo tcpflow -i eth0 port 8000

留意:请将上面的 eth0 替换为你想捕捉的网卡接口称号。

11) IPTraf

IPTraf 是一个针对 Linux 渠道的根据控制台的网络计算运用。它生成一系列的图形,如 TCP 衔接的包/字节计数、接口信息和活动指示器、 TCP/UDP 流量毛病以及局域网内设备的包/字节计数。

在默许的软件库房中能够找到 IPTraf,所以咱们能够运用下面的指令经过 apt 包管理器轻松地装置 IPTraf:

$ sudo apt-get install iptraf

咱们能够运用下面的指令经过 yum 包管理器轻松地装置 IPTraf:

# yum install iptraf

咱们需求以管理员权限来运转 IPTraf,并带有一个有用的网络接口名。这儿,咱们的网络接口名为 wlan2,所以咱们运用 wlan2 来作为参数:

$ sudo iptraf wlan2

开端一般的网络接口计算,键入:

# iptraf -g

查看接口 eth0 的具体计算信息,运用:

# iptraf -d eth0

查看接口 eth0 的 TCP 和 UDP 监控信息,运用:

# iptraf -z eth0

查看接口 eth0 的包的巨细和数目,运用:

# iptraf -z eth0

留意:请将上面的 eth0 替换为你的接口称号。你能够经过运转ip link show指令来查看你的接口。

12) Speedometer

Speedometer 是一个细巧且简略的东西,它只用来绘出一幅包括有经过某个给定端口的上行、下行流量的美观的图。

在默许的软件库房中能够找到 Speedometer ,所以咱们能够运用下面的指令经过 yum 包管理器轻松地装置 Speedometer:

# yum install speedometer

咱们能够运用下面的指令经过 apt 包管理器轻松地装置 Speedometer:

$ sudo apt-get install speedometer

Speedometer 能够简略地经过在 shell 或虚拟终端中履行下面的指令来运转:

$ speedometer -r wlan2 -t wlan2

注:请将上面的 wlan2 替换为你想要运用的网络接口称号。

13) Netwatch

Netwatch 是 netdiag 东西集里的一部分,它也显现当时主机和其他长途主机的衔接情况,以及在每个衔接中数据传输的速率。

咱们能够运用 yum 在 fedora 中装置 Netwatch,由于它在 fedora 的默许软件库房中。但若你运转着 CentOS 或 RHEL , 咱们需求装置 rpmforge 软件库房。

# yum install netwatch

Netwatch 是 netdiag 的一部分,能够在默许的软件库房中找到,所以咱们能够轻松地运用下面的指令来运用 apt 包管理器装置 netdiag:

$ sudo apt-get install netdiag

为了运转 netwatch, 咱们需求在虚拟终端或 shell 中履行下面的指令:

$ sudo netwatch -e wlan2 -nt

留意: 请将上面的 wlan2 替换为你想运用的网络接口称号,假设你想经过扫描了解你的网络接口称号,能够在一个虚拟终端或 shell 中运转 ip link show 指令。

14) Trafshow

Trafshow 同 netwatch 和 pktstat 相同,能够陈述当时活动的衔接里运用的协议和每个衔接中数据传输的速率。它能够运用 pcap 类型的过滤器来筛选出特定的衔接。

咱们能够运用 yum 在 fedora 中装置 trafshow ,由于它在 fedora 的默许软件库房中。但若你正运转着 CentOS 或 RHEL , 咱们需求装置 rpmforge 软件库房。

# yum install trafshow

Trafshow 在默许库房中能够找到,所以咱们能够轻松地运用下面的指令来运用 apt 包管理器装置它:

$ sudo apt-get install trafshow

为了运用 trafshow 来履行监控使命,咱们需求在虚拟终端或 shell 中履行下面的指令:

$ sudo trafshow -i wlan2

为了专门监控 tcp 衔接,如下面相同添加上 tcp 参数:

$ sudo trafshow -i wlan2 tcp

留意: 请将上面的 wlan2 替换为你想运用的网络接口称号,假设你想经过扫描了解你的网络接口称号,能够在一个虚拟终端或 shell 中运转 ip link show 指令。

15) Vnstat

与大多数的其他东西比较,Vnstat 有一点不同。实践上它运转着一个后台服务或看护进程,并时刻记载着传输数据的巨细。别的,它能够被用来生成一个网络运用历史记载的陈述。

咱们需求敞开 EPEL 软件库房,然后运转 yum 包管理器来装置 vnstat。

# yum install vnstat

Vnstat 在默许软件库房中能够找到,所以咱们能够运用下面的指令运转 apt 包管理器来装置它:

$ sudo apt-get install vnstat

不带有任何选项运转 vnstat 将简略地展现出从该看护进程运转后数据传输的总量。

$ vnstat

为了实时地监控带宽运用情况,运用 ‘-l’ 选项(live 形式)。然后它将以一种十分准确的方法来展现上行和下行数据所运用的带宽总量,但不会显现任何有关主机衔接或进程的内部细节。

$ vnstat -l

完结了上面的过程后,按 Ctrl-C 来中止,这将会得到如下类型的输出:

16) tcptrack

tcptrack 能够展现 TCP 衔接的情况,它在一个给定的网络端口上进行监听。tcptrack 监控它们的情况并展现出排序且不断更新的列表,包括来历/方针地址、带宽运用情况等信息,这与 top 指令的输出十分相似 。

鉴于 tcptrack 在软件库房中,咱们能够轻松地在 Debian、Ubuntu 体系中从软件库房运用 apt 包管理器来装置 tcptrack。为此,咱们需求在 shell 或虚拟终端中履行下面的指令:

$ sudo apt-get install tcptrack

咱们能够经过 yum 在 fedora 中装置它,由于它在 fedora 的默许软件库房中。但若你运转着 CentOS 或 RHEL 体系,咱们需求装置 rpmforge 软件库房。为此,咱们需求运转下面的指令:

# wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

# rpm -Uvh rpmforge-release*rpm

# yum install tcptrack

注:这儿咱们下载了 rpmforge-release 的当时最新版别,即 0.5.3-1,你总是能够从 rpmforge 软件库房中下载其最新版别,并请在上面的指令中替换为你下载的版别。

tcptrack 需求以 root 权限或超级用户身份来运转。履行 tcptrack 时,咱们需求带上要监督的网络接口 TCP 衔接情况的接口称号。这儿咱们的接口称号为 wlan2,所以如下面这样运用:

sudo tcptrack -i wlan2

假设你想监控特定的端口,则运用:

# tcptrack -i wlan2 port 80

请替换上面的 80 为你想要监控的端口号。留意: 请将上面的 wlan2 替换为你想运用的网络接口称号,假设你想经过扫描了解你的网络接口称号,能够在一个虚拟终端或 shell 中运转 ip link show 指令。

17) CBM

CBM ( Color Bandwidth Meter) 能够展现出当时悉数网络设备的流量运用情况。这个程序是如此的简略,以致于都能够从它的称号中看出其功用。CBM 的源代码和新版别能够在 http://www.isotton.com/utils/cbm/ 上找到。

鉴于 CBM 现已包括在软件库房中,咱们能够简略地运用 apt 包管理器从 Debian、Ubuntu 的软件库房中装置 CBM。为此,咱们需求在一个 shell 窗口或虚拟终端中运转下面的指令:

$ sudo apt-get install cbm

咱们只需运用下面展现的指令来在 shell 窗口或虚拟终端中运转 cbm:

$ cbm

18) bmon

Bmon ( Bandwidth Monitoring) ,是一个用于调试和实时监控带宽的东西。这个东西能够检索各种输入模块的计算数据。它供给了多种输出方法,包括一个根据 curses 库的界面,轻量级的HTML输出,以及 ASCII 输出格局。

bmon 能够在软件库房中找到,所以咱们能够经过运用 apt 包管理器来在 Debian、Ubuntu 中装置它。为此,咱们需求在一个 shell 窗口或虚拟终端中运转下面的指令:

$ sudo apt-get install bmon

咱们能够运用下面的指令来运转 bmon 以监督咱们的网络情况:

$ bmon

19) tcpdump

TCPDump 是一个用于网络监控和数据获取的东西。它能够为咱们节约许多的时刻,并可用来调试网络或服务器的相关问题。它能够打印出在某个网络接口上与布尔表达式相匹配的数据包所包括的内容的一个描绘。

tcpdump 能够在 Debian、Ubuntu 的默许软件库房中找到,咱们能够简略地以 sudo 权限运用 apt 包管理器来装置它。为此,咱们需求在一个 shell 窗口或虚拟终端中运转下面的指令:

$ sudo apt -get install tcpdump

tcpdump 也能够在 Fedora、CentOS、RHEL 的软件库房中找到。咱们能够像下面相同经过 yum 包管理器来装置它:

# yum install tcpdump

tcpdump 需求以 root 权限或超级用户来运转,咱们需求带上咱们想要监控的 TCP 衔接的网络接口称号来履行 tcpdump 。在这儿,咱们有 wlan2 这个网络接口,所以能够像下面这样运用:

$ sudo tcpdump -i wlan2

假设你只想监督一个特定的端口,则能够运转下面的指令。下面是一个针对 80 端口(网络服务器)的比如:

$ sudo tcpdump -i wlan2 ‘port 80’

20) ntopng

[ntopng][20] 是 ntop 的下一代版别。它是一个用于展现网络运用情况的网络探头,在必定程度上它与 top 针对进程所做的作业相似。ntopng 根据 libpcap 而且它以可移植的方法被重写,以到达能够在每一个 Unix 渠道 、 MacOSX 以及 Win32 上运转的意图。

为了在 Debian,Ubuntu 体系上装置 ntopng,首要咱们需求装置 编译 ntopng 所需的依靠软件包。你能够经过在一个 shell 窗口或一个虚拟终端中运转下面的指令来装置它们:

$ sudo apt-get install libpcap-dev libglib2.0-dev libgeoip-dev redis-server wget libxml2-dev build-essential checkinstall

现在,咱们需求像下面相同针对咱们的体系手动编译 ntopng :

$ sudo wget http://sourceforge.net/projects/ntop/files/ntopng/ntopng-1.1_6932.tgz/download

$ sudo tar zxfv ntopng-1.1_6932.tgz

$ sudo cd ntopng-1.1_6932

$ sudo ./configure

$ sudo make

$ sudo make install

这样,在你的 Debian 或 Ubuntu 体系上应该现已装置上了你编译的 ntopng 。

咱们现已有了有关 ntopng 的运用办法的教程,它既能够在指令行也能够在 Web 界面中运用,咱们能够前往这些教程来取得有关 ntopng 的常识。

定论

在这篇文章中,咱们介绍了一些在 Linux 下的网络负载监控东西,这关于体系管理员乃至是新手来说,都是很有协助的。在这篇文章中介绍的每一个东西都具有其特色,不同的选项等,但终究它们都能够协助你来监控你的网络流量。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/147559.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部