【51CTO精选译文】本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。

一些命令可以显示单个进程所使用的带宽。这样一来,用户很容易发现过度使用网络带宽的某个进程。

这些工具使用不同的机制来制作流量报告。nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载。

下面是按功能划分的命令名称。

  • 监控总体带宽使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload

  • 监控总体带宽使用(批量式输出)――vnstat、ifstat、dstat和collectl

  • 每个套接字连接的带宽使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow

  • 每个进程的带宽使用――nethogs

1. nload

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能

nload是一个命令行工具,让用户可以分开来监控入站流量和出站流量。它还可以绘制图表以显示入站流量和出站流量,视图比例可以调整。用起来很简单,不支持许多选项。

所以,如果你只需要快速查看总带宽使用情况,无需每个进程的详细情况,那么nload用起来很方便。

  1. $ nload

安装nload:Fedora和Ubuntu在默认软件库里面就有nload。CentOS用户则需要从Epel软件库获得nload。

  1. # fedora或centos

  2. $ yum install nload -y

  3. # ubuntu/debian

  4. $ sudo apt-get install nload

2. iftop

iftop可测量通过每一个套接字连接传输的数据;它采用的工作方式有别于nload。iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况。

虽然iftop报告每个连接所使用的带宽,但它无法报告参与某个套按字连接的进程名称/编号(ID)。不过由于基于pcap库,iftop能够过滤流量,并报告由过滤器指定的所选定主机连接的带宽使用情况。

  1. $ sudo iftop -n

n选项可以防止iftop将IP地址解析成主机名,解析本身就会带来额外的网络流量。


Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_02

安装iftop:Ubuntu/Debian/Fedora用户可以从默认软件库获得它。CentOS用户可以从Epel获得它。

  1. # fedora或centos

  2. yum install iftop -y

  3. # ubuntu或 debian

  4. $ sudo apt-get install iftop

3. iptraf

iptraf是一款交互式、色彩鲜艳的IP局域网监控工具。它可以显示每个连接以及主机之间传输的数据量。下面是屏幕截图。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_03

  1. $ sudo iptraf

安装iptraf:

  1. # Centos(基本软件库)

  2. $ yum install iptraf

  3. # fedora或centos(带epel)

  4. $ yum install iptraf-ng -y

  5. # ubuntu或debian

  6. $ sudo apt-get install iptraf iptraf-ng

4. nethogs

nethogs是一款小巧的"net top"工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面。万一出现带宽使用突然激增的情况,用户迅速打开nethogs,就可以找到导致带宽使用激增的进程。nethogs可以报告程序的进程编号(PID)、用户和路径。

  1. $ sudo nethogs

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_04

安装nethogs:Ubuntu、Debian和Fedora用户可以从默认软件库获得。CentOS用户则需要Epel。

  1. # ubuntu或debian(默认软件库)

  2. $ sudo apt-get install nethogs

  3. # fedora或centos(来自epel)

  4. $ sudo yum install nethogs -y

5. bmon

bmon(带宽监控器)是一款类似nload的工具,它可以显示系统上所有网络接口的流量负载。输出结果还含有图表和剖面,附有数据包层面的详细信息。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_05

安装bmon:Ubuntu、Debian和Fedora用户可以从默认软件库来安装。CentOS用户则需要安装repoforge,因为Epel里面没有bmon。

  1. # ubuntu或debian

  2. $ sudo apt-get install bmon

  3. # fedora或centos(来自repoforge)

  4. $ sudo yum install bmon

bmon支持许多选项,能够制作HTML格式的报告。欲知更多信息,请参阅参考手册页。

6. slurm

slurm是另一款网络负载监控器,可以显示设备的统计信息,还能显示ASCII图形。它支持三种不同类型的图形,使用c键、s键和l键即可激活每种图形。slurm功能简单,无法显示关于网络负载的任何更进一步的详细信息。

  1. $ slurm -s -i eth0

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_06

安装slurm

  1. # debian或ubuntu

  2. $ sudo apt-get install slurm

  3. # fedora或centos

  4. $ sudo yum install slurm -y

7. tcptrack

tcptrack类似iftop,使用pcap库来捕获数据包,并计算各种统计信息,比如每个连接所使用的带宽。它还支持标准的pcap过滤器,这些过滤器可用来监控特定的连接。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_07

安装tcptrack:Ubuntu、Debian和Fedora在默认软件库里面就有它。CentOS用户则需要从RepoForge获得它,因为Epel里面没有它。

  1. # ubuntu, debian

  2. $ sudo apt-get install tcptrack

  3. # fedora, centos(来自repoforge软件库)

  4. $ sudo yum install tcptrack

8. vnstat

vnstat与另外大多数工具有点不一样。它实际上运行后台服务/守护进程,始终不停地记录所传输数据的大小。之外,它可以用来制作显示网络使用历史情况的报告。

  1. $ service vnstat status

  2. * vnStat daemon is running

运行没有任何选项的vnstat,只会显示自守护进程运行以来所传输的数据总量。

  1. $ vnstat

  2. Database updated: Mon Mar 17 15:26:59 2014

  3. eth0 since 06/12/13

  4. rx:  135.14 GiB      tx:  35.76 GiB      total:  170.90 GiB

  5. monthly

  6. rx      |     tx      |    total    |   avg. rate

  7. ------------------------+-------------+-------------+-------------

  8. Feb '14      8.19 GiB  |    2.08 GiB  |   10.27 GiB |   35.60 kbit/s

  9. Mar '14      4.98 GiB  |    1.52 GiB  |    6.50 GiB |   37.93 kbit/s

  10. ------------------------+-------------+-------------+-------------

  11. estimated       9.28 GiB |    2.83 GiB  |   12.11 GiB |

  12. daily

  13. rx      |     tx      |    total    |   avg. rate

  14. ------------------------+-------------+-------------+-------------

  15. yesterday     236.11 MiB |   98.61 MiB |  334.72 MiB |   31.74 kbit/s

  16. today    128.55 MiB |   41.00 MiB |  169.56 MiB |   24.97 kbit/s

  17. ------------------------+-------------+-------------+-------------

  18. estimated       199 MiB |      63 MiB |     262 MiB |

想实时监控带宽使用情况,请使用"-l"选项(实时模式)。然后,它会显示入站数据和出站数据所使用的总带宽量,但非常精确地显示,没有关于主机连接或进程的任何内部详细信息。

  1. $ vnstat -l -i eth0

  2. Monitoring eth0...    (press CTRL-C to stop)

  3. rx:       12 kbit/s    10 p/s          tx:       12 kbit/s    11 p/s

vnstat更像是一款制作历史报告的工具,显示每天或过去一个月使用了多少带宽。它并不是严格意义上的实时监控网络的工具。

vnstat支持许多选项,支持哪些选项方面的详细信息请参阅参考手册页。

安装vnstat

  1. # ubuntu或debian

  2. $ sudo apt-get install vnstat

  3. # fedora或 centos(来自epel)

  4. $ sudo yum install vnstat

9. bwm-ng

bwm-ng(下一代带宽监控器)是另一款非常简单的实时网络负载监控工具,可以报告摘要信息,显示进出系统上所有可用网络接口的不同数据的传输速度。

  1. $ bwm-ng

  2. bwm-ng v0.6 (probing every 0.500s), press 'h' for help

  3. input: /proc/net/dev type: rate

  4. /         iface                   Rx                   Tx                T

  5. ot=================================================================

  6. ==           eth0:           0.53 KB/s            1.31 KB/s            1.84

  7. KB             lo:           0.00 KB/s            0.00 KB/s            0.00

  8. KB-------------------------------------------------------------------------------------------------------------

  9. total:           0.53 KB/s            1.31 KB/s            1.84

  10. KB/s

如果控制台足够大,bwm-ng还能使用curses2输出模式,为流量绘制条形图。

  1. $ bwm-ng -o curses2

安装bwm-ng:在CentOS上,可以从Epel来安装bwm-ng。

  1. # ubuntu或debian

  2. $ sudo apt-get install bwm-ng

  3. # fedora或centos(来自epel)

  4. $ sudo apt-get install bwm-ng

10. cbm:Color Bandwidth Meter

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_08

这是一款小巧简单的带宽监控工具,可以显示通过诸网络接口的流量大小。没有进一步的选项,仅仅实时显示和更新流量的统计信息。

  1. $ sudo apt-get install cbm

11. speedometer

这是另一款小巧而简单的工具,仅仅绘制外观漂亮的图形,显示通过某个接口传输的入站流量和出站流量。

  1. $ speedometer -r eth0 -t eth0

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_09

安装speedometer

  1. # ubuntu或debian用户

  2. $ sudo apt-get install speedometer

12. pktstat

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_10

pktstat可以实时显示所有活动连接,并显示哪些数据通过这些活动连接传输的速度。它还可以显示连接类型,比如TCP连接或UDP连接;如果涉及HTTP连接,还会显示关于HTTP请求的详细信息。

  1. $ sudo pktstat -i eth0 -nt

  2. $ sudo apt-get install pktstat

13. netwatch

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_11

netwatch是netdiag工具库的一部分,它也可以显示本地主机与其他远程主机之间的连接,并显示哪些数据在每个连接上所传输的速度。

  1. $ sudo netwatch -e eth0 -nt

  2. $ sudo apt-get install netdiag

14. trafshow

与netwatch和pktstat一样,trafshow也可以报告当前活动连接、它们使用的协议以及每条连接上的数据传输速度。它能使用pcap类型过滤器,对连接进行过滤。

只监控TCP连接

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_12

  1. $ sudo trafshow -i eth0 tcp

  2. $ sudo apt-get install netdiag

15. netload

netload命令只显示关于当前流量负载的一份简短报告,并显示自程序启动以来所传输的总字节量。没有更多的功能特性。它是netdiag的一部分。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_13

  1. $ netload eth0

  2. $ sudo apt-get install netdiag

16. ifstat

ifstat能够以批处理式模式显示网络带宽。输出采用的一种格式便于用户使用其他程序或实用工具来记入日志和分析。

  1. $ ifstat -t -i eth0 0.5

  2. Time           eth0

  3. HH:MM:SS   KB/s in  KB/s out

  4. 09:59:21       2.62      2.80

  5. 09:59:22       2.10      1.78

  6. 09:59:22       2.67      1.84

  7. 09:59:23       2.06      1.98

  8. 09:59:23       1.73      1.79

安装ifstat:Ubuntu、Debian和Fedora用户在默认软件库里面就有它。CentOS用户则需要从Repoforge获得它,因为Epel里面没有它。

  1. # ubuntu, debian

  2. $ sudo apt-get install ifstat

  3. # fedora, centos(Repoforge)

  4. $ sudo yum install ifstat

17. dstat

dstat是一款用途广泛的工具(用python语言编写),它可以监控系统的不同统计信息,并使用批处理模式来报告,或者将相关数据记入到CSV或类似的文件。这个例子显示了如何使用dstat来报告网络带宽。

安装dstat

  1. $ dstat -nt

  2. -net/total- ----system----

  3. recv  send|     time

  4. 0     0 |23-03 10:27:13

  5. 1738B 1810B|23-03 10:27:14

  6. 2937B 2610B|23-03 10:27:15

  7. 2319B 2232B|23-03 10:27:16

  8. 2738B 2508B|23-03 10:27:17

18. collectl

collectl以一种类似dstat的格式报告系统的统计信息;与dstat一样,它也收集关于系统不同资源(如处理器、内存和网络等)的统计信息。这里给出的一个简单例子显示了如何使用collectl来报告网络使用/带宽。

  1. $ collectl -sn -oT -i0.5

  2. waiting for 0.5 second sample...

  3. #         <----------Network---------->

  4. #Time       KBIn  PktIn  KBOut  PktOut

  5. 10:32:01      40     58     43      66

  6. 10:32:01      27     58      3      32

  7. 10:32:02       3     28      9      44

  8. 10:32:02       5     42     96      96

  9. 10:32:03       5     48      3      28

安装collectl

  1. # Ubuntu/Debian用户

  2. $ sudo apt-get install collectl

  3. #Fedora

  4. $ sudo yum install collectl

结束语

上述几个使用方便的命令可以迅速检查Linux服务器上的网络带宽使用情况。不过,这些命令需要用户通过SSH登录到远程服务器。另外,基于Web的监控工具也可以用来实现同样的任务。

ntop和darkstat是面向Linux系统的其中两个基本的基于Web的网络监控工具。除此之外还有企业级监控工具,比如nagios,它们提供了一批功能特性,不仅仅可以监控服务器,还能监控整个基础设施。

原文链接:http://www.binarytides.com/linux-commands-monitor-network/



五款好玩又好用的Linux网络测试和监控工具

【51CTO精选译文】在这篇介绍几款Linux网络测试实用工具的文章中,我们使用Bandwidthd、Speedometer、Nethogs、Darkstat和iperf,跟踪带宽使用情况和网络速度、查找网络资源消耗大户,以及测试性能。

Bandwidthd

Bandwidthd是一款好玩又好用的应用程序,虽然自2005年以来就没有更新过,但是它仍很管用,至少在本人的Kubuntu系统上是这样。它以色彩鲜艳的漂亮图形显示了你的进出带宽使用情况,并且在网页上按日、周、月和年加以统计。所以,你还需要Apache服务器,或另外某台HTTP服务器。可以监控单单一台电脑,也可以监控局域网上的每个人。如果你需要关注带宽限量,这款优秀的应用程序可用于跟踪每月带宽使用情况。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_14

图1:漂亮的Bandwidthd图形

Bandwidthd几乎没有任何说明文档。man bandwidthd列出了其所有配置文件和目录。它的Sourceforge页面上更是内容寥寥无几。现在有两个版本:bandwidthd和bandwidthd-pgsql。Bandwidthd每隔150秒生成静态HTML页面,而bandwidthd-pgsql在动态PHP页面上显示了图形和数据。网页上写道"两个版本的可视化输出结果很相似,但数据库驱动的系统允许用户进行搜索、过滤、监测多个传感器和创建自定义报表。"我认为,如果你想要搜索、过滤、监测多个传感器或创建自定义报表,就得改动PHP文件。在我的系统上安装很容易,这归功于Debian和Ubuntu程序包维护者。它创建了Apache配置,并安装了PostgreSQL,然后我要做的就是打开Web浏览器,浏览到http://localhost/bandwidthd,除了在配置文件中外,该网址没有记录在任何地方,所以你最先在这里听说该网址。

相关链接:http://bandwidthd.sourceforge.net/

Speedometer

Speedometer在控制台上显示了实时图形(所以你不需要Web服务器),显示了数据在你的网络连接上传输有多快,它还可以解答"我的硬盘速度有多快"这一问题。最简单的用法显示了每秒收到或传输的字节数。这被称为分路器(tap):

  1. $ speedometer -r eth0

你可以通过创建两个分路器来监测双向流量:

  1. $ speedometer -r eth0 -t eth0

默认是堆叠分路器。-c选项而是制作了漂亮的列,-k 256显示了256种颜色,而不是默认的16种颜色,如图2所示。

  1. $ speedometer  -r eth0 -c -t eth0

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_15

图2:Speedometer以256种颜色和多列跟踪进出的流量

你可以通过使用dd,创建一个1GB大小的原始文件,测量硬盘的原始写入速度,然后使用Speedometer,测量创建该原件文件需要多长时间:

  1. $ dd bs=1000000count=1000if=/dev/zero of=testfile & speedometer testfile

更改count值,即可生成不同大小的文件;比如说,count=2000创建了一个2GB大小的文件。你还可以试着更改不同的数据块大小(bs),看看这有没有什么区别。记得完成后,务必要删除testfile,除非你喜欢任由毫无用处的大文件躺在那里。

相关链接:http://www.linux.com/speedometer

Nethogs

Nethogs是一款简单的控制台应用程序,可显示每个进程的带宽,所以你可以马上看到谁在耗用网络资源。最简单的调用指定了你的网络接口,然后它既显示了入站数据包,又显示了出站数据包:

  1. $ sudo nethogs eth0

  2. NetHogs version 0.8.0

  3. PID USER     PROGRAM                DEV        SENT      RECEIVED

  4. 1703  carla      ssh                       eth0      9702.096     381.697 KB/sec

  5. 5734  www-data  /usr/bin/fie                eth0         1.302      59.301 KB/sec

  6. 13113 carla       ..lib/firefox/firefox         eth0          0.021       0.023 KB/sec

  7. 2462  carla      ..oobar/lib/foobar          eth0       0.000       0.000 KB/sec

  8. ?     root       unknown TCP                          0.000       0.000 KB/sec

  9. TOTAL                                           9703.419     441.021 KB/sec

使用-r选项显示单单收到的数据包,使用-s选项查看单单发送的数据包。

相关链接:http://nethogs.sourceforge.net/

Darkstat

Darkstat是另一款基于Web的网络监控工具,不过它包括自己的嵌入式HTTP服务器,所以你就不需要Apache了。以网络接口名称作为唯一的选项来启动它:

  1. $ sudo darkstat -i eth0

然后打开Web浏览器,浏览到http://localhost:667,你会看到类似图3的结果。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_16

图3:Darkstat的默认显示画面

点击自动重装按钮,即可让它实时更新。Hosts(主机)选项卡显示了你与相连接、你已连接了多长时间,以及你们之间已传送了多少数据(以字节数为单位)。

你可以将Darkstat作为守护程序来运行,并且让它在系统启动时开启。这一步怎么做取决于你的Linux发行版以及所使用的初始化系统(Upstart、systemd、sysvinit和BSD init)。这方面你得自己搞清楚。

相关链接:http://unix4lyfe.org/darkstat/

iperf

缌的读者肯定一直在想"怎么没有iperf?"。好了,现在就来说说iperf。iperf可报告带宽、延迟抖动和数据报丢失等方面的情况。换句话说,它可以测试网络链路质量,而链路质量对传送音乐、视频和视频会话等流媒体来说很重要。你需要在想要测试的那条链路的两头都要安装iperf:在这个例子中,两头分别是Studio和Uberpc。然后在一个主机上,在服务器模式下开启iperf;在另一个主机上,在客户机模式下运行iperf。要注意:在客户机上,你必须为服务器命名。下面是运行测试的最简单方式:

  1. carla@studio:~$ iperf -s

  2. terry@uberpc:~$ iperf -c studio

  3. carla@studio:~$ iperf -s

  4. ------------------------------------------------------------

  5. Server listening on TCP port 5001

  6. TCP window size: 85.3 KByte (default)

  7. ------------------------------------------------------------

  8. [4] local 192.168.1.132 port 5001 connected with 192.168.1.182 port 32865

  9. [ID] Interval       Transfer     Bandwidth

  10. [4]  0.0-10.0 sec  1.09 GBytes   938 Mbits/sec

  11. terry@uberpc:~$ iperf -c studio

  12. ------------------------------------------------------------

  13. Client connecting to studio, TCP port 5001

  14. TCP window size: 22.9 KByte (default)

  15. ------------------------------------------------------------

  16. [3] local 192.168.1.182 port 32865 connected with 192.168.1.132 port 5001

  17. [ID] Interval       Transfer     Bandwidth

  18. [3]  0.0-10.0 sec  1.09 GBytes   938 Mbits/sec

这是单向的,即从服务器到客户机。你可以从客户机端测试双向性能:

  1. terry@uberpc:~$ iperf -c studio -d

  2. ------------------------------------------------------------

  3. Server listening on TCP port 5001

  4. TCP window size: 85.3 KByte (default)

  5. ------------------------------------------------------------

  6. ------------------------------------------------------------

  7. Client connecting to studio, TCP port 5001

  8. TCP window size: 54.8 KByte (default)

  9. ------------------------------------------------------------

  10. [5] local 192.168.1.182 port 32980 connected with 192.168.1.132 port 5001

  11. [4] local 192.168.1.182 port 5001 connected with 192.168.1.132 port 47130

  12. [ID] Interval       Transfer     Bandwidth

  13. [5]  0.0-10.0 sec  1020 MBytes   855 Mbits/sec

  14. [4]  0.0-10.0 sec  1.07 GBytes   920 Mbits/sec

上述那些就千兆以太网而言速度不错,接近理论最大速率,所以这告诉我们物理网络处于良好状态。当然,实际性能会有所下降,因为网络开销大于这个简单测试。现在,不妨看一下延迟抖动。使用Ctrl+c组合键,停止服务器运行,然后用iperf -su重启服务器。在客户机上,试一试:

  1. $ iperf -c studio -ub 900m

-b 900m意味着,以每秒900兆比特的速度运行测试,所以你需要针对自己的网络调整这个参数,并且测试不同的速度。良好的运行速度如同这样:

  1. [ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total  

  2. Datagrams

  3. [  3]  0.0-10.0 sec   958 MBytes   803 Mbits/sec   0.013 ms 1780/684936

  4. (0.26%)

  5. [  3]  0.0-10.0 sec  1 datagrams received out-of-order

0.013毫秒抖动是它能得到的最短延迟。超过1000毫秒,就会干扰音频和视频流传送。0.26%的数据报丢失率也很低。如果丢失率更高,那样数据包需要重新发送时,会导致更长的延迟。

有一个新版本的iperf,那就是iperf 3.0.1(http://code.google.com/p/iperf/)。有朝一日,这应该会取代iperf2。新版本是从头开始改写的,所以它非常整洁,并不拙劣,它包括一个可用于其他程序的库版本。新版本仍是个新兴产品,所以预计会有不尽如人意的地方。

相关链接:http://iperf.sourceforge.net/

原文链接:http://www.linux.com/learn/tutorials/765381-five-funny-little-linux-network-testers-and-monitors



10个实用的 Linux 网络和监控命令
2014-03-18 14:00 佚名 linux.cn字号:T | T
Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_17

本文列出了10个基础的每个Linux用户都应该知道的网络和监控命令,通过 telnet 和ethernet建立与linux之间的网络链接,查看linux的服务器信息等。

AD:51CTO学院:IT精品课程在线看!


Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_18

本文列出了10个基础的每个Linux用户都应该知道的网络和监控命令。网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看linux服务器ip地址,管理服务器网络配置,通过 telnet 和ethernet建立与linux之间的网络链接,查看linux的服务器信息等。下面让我们看看在Linux下的网络和监控命令的使用。

1. hostname

hostname 没有选项,显示主机名字
hostname –d 显示机器所属域名
hostname –f 显示完整的主机名和域名
hostname –i 显示当前机器的ip地址

2. ping

ping 将数据包发向用户指定地址。当包被接收,目标机器发送返回数据包。ping 主要有两个作用:

  • 用来确认网络连接是畅通的。

  • 用来查看连接的速度信息。

如果你 ping www.yahoo.com 它将返回它的ip地址 。你可以通过 ctrl+C 来停止命令。

3. ifconfig

查看用户网络配置。它显示当前网络设备配置。对于需要接收或者发送数据错误查找,这个工具极为好用。

4. iwconfig

iwconfig 工具与 ifconfig 和ethtool类似。是用于无线网卡的 . 你可以用他查看设置基本的Wi-Fi 网络信息,例如 SSID, channel和encryption.还有其他很多配置你也可以查看和修改,, 包括 接收灵敏度, RTS/CTS, 发送数据包的分片大小,以及无线网卡的重传机制。

5. nslookup

nslookup 这个命令在 有ip地址时,可以用这个命令来显示主机名,可以找到给定域名的所有ip地址。而你必须连接到互联网才能使用这个命令。

例子:nslookup blogger.com。你也可以使用 nslookup 从ip获得主机名或从主机名获得ip。

6. traceroute

一个方便的工具。可用来查看数据包在提交到远程系统或者网站时候所经过的路由器的IP地址、跳数和响应时间。同样你必须链接到互联网才能使用这个命令。

7. finger

查看用户信息。显示用户的登录名字、真实名字以及登录终端的名字和登录权限。这是unix一个很老的命令,现在已很少使用了。

8. telnet

通过telnet协议连接目标主机,如果telnet连接可以在任一端口上完成即代表着两台主机间的连接良好。

telnet hostname port – 使用指定的端口telnet主机名。这通常用来测试主机是否在线或者网络是否正常。

9. ethtool

ethtool允许你查看和更改网卡的许多设置(不包括Wi-Fi网卡)。你可以管理许多高级设置,包括tx/rx、校验及网络唤醒功能。下面是一些你可能感兴趣的基本命令:
ethtool -i 显示一个特定网卡的驱动信息,检查软件兼容性时尤其有用
ethtool -p 启动一个适配器的指定行为,比如让适配器的LED灯闪烁,以帮助你在多个适配器或接口中标识接口名称
ethtool -s 显示网络统计信息
ethtool speed <10|100|1000> 设置适配器的连接速度,单位是Mbps

10. netstat

发现主机连接最有用最通用的Linux命令。你可以使用”netstat -g”查询该主机订阅的所有多播组(网络)

netstat -nap | grep port 将会显示使用该端口的应用程序的进程id
netstat -a or netstat –all 将会显示包括TCP和UDP的所有连接
netstat –tcp or netstat –t 将会显示TCP连接
netstat –udp or netstat –u 将会显示UDP连接
netstat -g 将会显示该主机订阅的所有多播网络。

【编辑推荐】



监控 Linux 性能的 18 个命令行工具
2014-02-18 10:45 几点人, LitStone等编译 oschina字号:T | T
Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_17

对于Linux系统的管理员而言,每天监控和调试Linux系统的性能问题是一项繁重的工作。本文中分享了18个命令行工具,这些工具将有助于每个Linux/Unix 系统管理员的工作。

AD:51CTO学院:IT精品课程在线看!


对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易。基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作。这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因。这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具。

1.Top-Linux进程监控

Linux下的Top命令是一个性能监控程序,许多系统管理员常常用它来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令。Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。对系统管理员来说,top命令式是一个非常有用的,它可用于监控系统并在需要的时候采取正确的处理动作。让我们看看实际中的top命令。

# top

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_20

Top命令举例

有关Top命令更多的例子,请阅读:Linux下12个使用Top命令的例子

2. VmStat – 虚拟内存统计

Linux 的 VmStat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。缺省情况下, vmstat 命令在 Linux 系统下不可用,你需要安装一个包含了 vmstat 程序的 sysstat 软件包。命令格式的常见用法是:

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 810420  97380  70628    0    0   115     4   89   79  1  6 90  3  0

更多的 vmstat 例子,请阅读 : 6 Linux 下的 Vmstat 命令实例

3.Lsof-列出打开的文件

在许多Linux或者类Unix系统里都有lsof命令,它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你可以很容易地看到正在使用哪个文件。这条命令最常用的格式如下:

# lsof
COMMAND     PID      USER   FD      TYPE     DEVICE     SIZE       NODE NAME
init          1      root  cwd       DIR      104,2     4096          2 /
init          1      root  rtd       DIR      104,2     4096          2 /
init          1      root  txt       REG      104,2    38652   17710339 /sbin/init
init          1      root  mem       REG      104,2   129900     196453 /lib/ld-2.5.so
init          1      root  mem       REG      104,2  1693812     196454 /lib/libc-2.5.so
init          1      root  mem       REG      104,2    20668     196479 /lib/libdl-2.5.so
init          1      root  mem       REG      104,2   245376     196419 /lib/libsepol.so.1
init          1      root  mem       REG      104,2    93508     196431 /lib/libselinux.so.1
init          1      root   10u     FIFO       0,17                 953 /dev/initctl

有关lsof命令的用法和例子的更多信息,请参考: Linux下10个使用lsof命令的例子

4.Tcpdump-网络包分析器

Tcpdump是最广泛使用的网络包分析器或者包监控程序之一,它用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包。它还有一个选项用于把捕捉到的包保存到文件里,以便以后进行分析。在几乎所有主要的Linux发布里,tcpdump都可以使用。

# tcpdump -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347

要想获得更多有关tcpdump用法的信息,请参阅: Linux下12个使用Tcpdump命令的例子。

5.Netstat-网络状态统计

Netstat是一个用于监控进出网络的包和网络接口统计的命令行工具。它是一个非常有用的工具,系统管理员可以用来监控网络性能,定位并解决网络相关问题。

# netstat -a | moreActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 *:mysql                     *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:realm-rusd                *:*                         LISTEN
tcp        0      0 *:ftp                       *:*                         LISTEN
tcp        0      0 localhost.localdomain:ipp   *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42709 TIME_WAIT
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42710 TIME_WAIT
tcp        0      0 *:http                      *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:https                     *:*                         LISTEN

有关Netstat更多的例子,请参阅: Linux下20个使用Netstat命令的例子。

6. Htop – Linux进程监控

Htop 是一个非常高级的交互式的实时linux进程监控工具。 它和top命令十分相似,但是它具有更丰富的特性,例如用户可以友好地管理进程,快捷键,垂直和水平方式显示进程等等。 Htop是一个第三方工具,它不包含在linux系统中,你需要使用YUM包管理工具去安装它。 关于安装的更多信息,请阅读下文.

# htop

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_21

Htop 命令示例截图

对于Htop的安装,请读 : 在Linux安装Htop(Linux进程监控)

7.Iotop-监控Linux磁盘I/O

Iotop命令同样也非常类似于top命令和Htop程序,不过它具有监控并显示实时磁盘I/O和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。

# iotop

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_22

Iotop命令举例的截图  有关如何安装和使用iotop的信息,请阅读: 在Linux下安装Iotop。

8.Iostat-输入/输出统计

Iostat是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。

# iostat
Linux 2.6.18-238.9.1.el5 (tecmint.com)         09/13/2012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.60    3.65    1.04    4.29    0.00   88.42

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0       17.79       545.80       256.52  855159769  401914750
cciss/c0d0p1      0.00         0.00         0.00       5459       3518
cciss/c0d0p2     16.45       533.97       245.18  836631746  384153384
cciss/c0d0p3      0.63         5.58         3.97    8737650    6215544
cciss/c0d0p4      0.00         0.00         0.00          8          0
cciss/c0d0p5      0.63         3.79         5.03    5936778    7882528
cciss/c0d0p6      0.08         2.46         2.34    3847771    3659776

有关iostat用法和举例的更多信息,请访问: Linux下6个使用iostat命令的例子

9.IPTraf-实时局域网IP监控

IPTraf是一个在Linux控制台运行的、开放源代码的实时网络(局域网)监控应用。它采集了大量信息,比如通过网络的IP流量监控,包括TCP标记、ICMP详细信息、TCP/UDP流量分离、TCP连接包和字节数。同时还采集有关接口状态的常见信息和详细信息:TCP、UDP、IP、ICMP、非IP,IP校验和错误,接***动等。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_23

IP流量监控

有关IPTraf工具用法以及其他更多信息,请访问: IPTraf网络监控工具

10. psacct 或者 acct - 监视用户活动

psacct或者acct工具用于监视系统里每个用户的活动状况。这两个服务进程运行在后台,它们对系统上运行的每个用户的所有活动进行近距离监视,同时还监视这些活动所使用的资源情况。

系统管理员可以使用这两个工具跟踪每个用户的活动,比如用户正在做什么,他们提交了那些命令,他们使用了多少资源,他们在系统上持续了多长时间等等。

有关这些命令的安装和用法举例信息,请参阅文章:使用psacct或者acct监视用户活动

11.Monit - Linux进程和服务监控工具

Monit是一个免费的开源软件,也是一个基于网络的进程监控工具。它能自动监控和管理系统进程,程序,文件,文件夹,权限,总和验证码和文件系统。

这个软件能监控像Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH这样的服务。你可以通过命令行或者这个软件提供的网络借口来查看系统状态。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_24

Monit Linux系统监控

更多内容请参阅:用Monit监控Linux进程

12.NetHogs-监视每个进程使用的网络带宽

NetHogs是一个开放源源代码的很小程序(与Linux下的top命令很相似),它密切监视着系统上每个进程的网络活动。同时还追踪着每个程序或者应用所使用的实时网络带宽。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_25

NetHogs:Linux下的带宽监视

更多信息请参阅: 使用NetHogs监视Linux的网络带宽使用状况。

13.iftop-监视网络带宽

iftop是另一个在控制台运行的开放源代码系统监控应用,它显示了系统上通过网络接口的应用网络带宽使用(源主机或者目的主机)的列表,这个列表定期更新。iftop用于监视网络的使用情况,而'top'用于监视CPU的使用情况。iftop是'top'工具系列中的一员,它用于监视所选接口,并显示两个主机间当前网络带宽的使用情况。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_26

iftop-监视网络带宽

更多信息请参阅:iftop-监视网络带宽的使用情况

14 Monitorix-系统和网络监控

Monitorix 是一个免费的轻量级应用工具,它的设计初衷是运行和监控Linux/Unix服务器系统和资源等。它有一个HTTP 网络服务器,这个服务器有规律的收集系统和网络的信息并以图形化的形式展示出来。它监控系统的平均负载和使用,内存分配、磁盘健康状况、系统服务、网络端口、邮件统计(Sendmail,Postfix,Dovecot等),MySQL统计,等等。它就是用来监控系统的总体性能,帮助发现失误、瓶颈和异常活动的。

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_27

15. Arpwatch – 以太网活动监视器

Arpwatch被设计用来监控Linux上的以太网地址解析 (MAC和IP地址的变化)。他在一段时间内持续监控以太网活动并输出IP和MAC地址配对变动的日志。它还可以向管理员发送邮件通知,对地址配对的增改发出警告。这对于检测网络上的ARP攻击很有用。

更多信息请参阅 : Arpwatch to Monitor Ethernet Activity

16. Suricata – 网络安全监控

Suricata 是一个开源的高性能网络安全、入侵检测和反监测工具,可以运行Linux、FreeBSD和Windows上。非营利组织OISF (Open Information Security Foundation)开发并拥有其版权。

更多信息请参阅 : Suricata – A Network Intrusion Detection and Prevention System

17. VnStat PHP – 网络流量监控

VnStat PHP 是流行网络工具"vnstat"的基于web的前端呈现。VnStat PHP 将网络使用情况呈现在漂亮的图形界面中。他可以显示以小时、日、月计的上传和下载流量并输出总结报告。

更多信息请参阅 : VnStat PHP – Monitoring Network Bandwidth

18. Nagios – 网络/服务器监控

Nagios是领先而强大的开源监控系统,他可以让网络/系统管理员在问题影响到正常的业务之前发现并解决它们。有了Nagios系统,管理员可以在单个窗口内远程检测Linux、Windows、开关、路由器和打印机。它可以危险警告并指出系统/服务器是否有异常,这可以间接帮助你在问题发生之前采取抢救措施。

更多信息请参阅 : Install Nagios Monitoring System to Monitor Remote Linux/Windows Hosts

我们想知道:你在用什么监控程序来监控Linux服务器的性能呢?如果我们在上面错过了你认为重要的工具,请在评论中告诉我们,不要忘了分享它!


英文原文:18 Command Line Tools to Monitor Linux Performance

译文链接:http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance



4个强大的Linux服务器监控工具
2014-02-09 10:20 敏敏翻译 伯乐在线字号:T | T
Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_17

本文中,作者推荐了4个强大的Linux服务器监控工具。他们分别是:htop、iotop、apachetop、Glances。

AD:51CTO学院:IT精品课程在线看!


本文是我想呈现给各位的4个强大的监控工具。

htop – 交互式进程查看器

你可能知道在机器上查看实时进程的标准工具top。如果不知道,请运行$ top看看,运行$ man top阅读帮助手册。

htop是top的扩展版本,有更丰富的概貌(例如全命令、可视化、图形用户界面gui和用户界面ui),有鼠标点击交互(译者注:看下面的截图,指的是最上面的列标题如CPU%、MEM%等可以通过鼠标点击切换以显示不同的功能),也有许多的指导教你如何做进程管理。

安装该命令并尝试运行:

  1. $ sudo apt-get install htop


截图如下:

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_29

- From my OS X terminal in my Debian 7 box

iotop – 简单的类似top的I/O监控器

iotop是IO实时监控器。使用它们附属的详细输入输出(IO)使用方法可以展示出你系统中每个进程线程的信息。

该命令可以与$ tcpdump(响应网络流量的命令)一起使用。如果你发现你的web服务器上有程序在运行,你可以,比如运行$ tcpdump port 80检查端口80(标准的http端口)的网络流量来观察细节。

最有用的信息可能是DISK WRITE这一列,从该列你可以准确的看到每个IO使用了多少个进程,单位为K/s。

安装该命令并尝试运行:

  1. $ sudo apt-get install iotop


截图如下:

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_30

apachetop – 展示web服务器实时统计数据

Apachetop展示Apache web服务器上关于http请求的实时表。

它显示统计(stats), 点击(hits), 请求(requests), 请求细节(request details),且能够获得当前你的web服务器正在运行程序的概貌,这一点很赞。

如果你使用的是Nginx,也有一些相似的工具,但似乎没有apachetop那么详细。

安装该命令并尝试运行:

  1. $ sudo apt-get install apachetop


截图如下:


Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_31

Glances – 基于CLI curses库的监控工具

Glances用各个分离的表列展示了你机器当前正运行的各种有用的实时数据。Glances旨在用最小的空间显示尽可能多的信息,我认为它的目标完全达到了。
Glances用有限的交互可能性和更深层的信息监控PerCPU, Load, Memory, Swap, Network, Disk i/O, Mount data 和processes,但对于获得一个整体概貌绝对是完美的。
安装该命令并尝试运行:


  1. $ sudo apt-get install glances

截图如下:

Linux服务器上监控网络带宽与监控性能命令大全_网络带宽与监控性能_32

原文链接: Aarvik   翻译: 伯乐在线 - 敏敏
译文链接: http://blog.jobbole.com/58003/

【编辑推荐】