网络通信Linux最基本的功能之一,很多时候我们需要获取Linux网络信息。Linux中有很多网络监控工具。本文将为大家介绍Linux中常用的网络监控工具。NetstatNetstat是Linux下一款全能的网络监控工具。它可以监控主机网络数据包统计和网卡信息的命令行工具。它可以显示当前的网络连接、路由表以及许多网络接口和网络协议统计信息。在许多发行版中默认安装了Netstat。比如Centos6在centos7和8下默认替换为iptraf2ss,默认不安装。但是可以安装。Ubuntu和Debian用户可以使用默认的apt包管理器进行安装。Netstat命令包net-tools的一部分。并且可以在shell或终端中运行以下命令进行安装:sudoapt-getinstallnet-toolsCentOS、Fedora和RHEL用户可以使用yum包管理器:yuminstallnet-tools安装完成后,运行以下命令,可以使用Netstat来进行安装监控网络数据包统计:netstatnetstat最常用的方法:netstat-nt(u)lp用于查看本地应用程序监控的信息,包括监控的网络、端口和程序名称及其Pid。要实时查看本机的网络连接情况,需要使用参数-a可以列出当前网络连接的本地IP和端口,以及远端的IP和端口,以及网络connectionstatus,可以用来统计每个状态的链路状态,从而分析服务的健康度,进行网络调整。优秀(配置内核网络参数)、故障排除等用一行命令,就可以列出当前TCP连接状态的个数:netstat-natlp|perl-lane'print$F[5]'|sort|uniq-c2CLOSE_WAIT1established)29ESTABLISHED1Foreign23LISTEN5TIME_WAITnetstat一个比较常用的方法是使用它查看本机网络(网卡)配置状态,效果同ifconfig:netstat-ienetstat的更多用法,可以直接查看本机的使用手册(适用于所有Linux命令),输入mannetstat在外壳或终端中。是的:mannetstatSSiproute2提供的SS命令是新一代的网络工具,被很多发行版用来替代netstat。可以更快的获取信息,在网络访问量大的机器上使用ss可以更快的获取链接状态。iproute2在许多默认发行版中都有,也可以使用包管理器使用以下命令轻松安装:sudoapt-getinstalliproute2yuminstalliproute2SS使用方法,manss可以获取信息-l显示本地打开的所有端口-pl显示套接字进程和端口,等和netstat-nutlp-tpl和-upl显示本地监听的TCP和UDP连接-ta显示所有TCP连接。-ua显示所有UDP连接。统计各个连接状态的网络连接统计,可以使用:ss-a|perl-lane'print$F[1]'|sort|uniq-c当主机连接数较多时,与netstat相比,ss统计速度非常快。主要原因是ss的实现使用了TCP协议栈中的tcp_diag模块,可以直接从内核获取相关网络信息。而netstat是读取/proc/net/tcp的信息,然后进行统计,比较慢。ss支持过滤语法,例如:ss-ostateestablished'(dport=:sshorsport=:ssh)'显示所有已建立的SSH(默认端口22)连接ss-ostateestablished'(dport=:httporsport=:http)'显示所有已建立的HTTP连接,可以根据其他字段过滤,比如列出本机(127.0.0.1)的连接,可以使用sssrc127.0.0.1网络流量统计1.iftop如果你想按主机网络带宽使用情况排序,通常可以使用iftop。如果top是指定网卡,如果不指定接口,则显示所有网络流量,并按主机对显示当前带宽使用表。在统计窗口中,按h获取帮助信息:可以通过分发包管理安装iftop:sudoapt-getinstallliftop使用以下命令使用yum在您的计算机上安装iftopyuminstallliftop2。nethogsnethogs是一个免费的网络统计工具。nethogs可以按进程PID计算网络流量,因为它按进程对带宽进行分组,而不是像大多数工具那样按协议或子网分组。nethogs功能丰富,同时支持IPv4和IPv6。当你想统计Linux主机的带宽使用信息时,它是最好的工具。nethogs也可以使用发行包安装程序直接安装。Linux用户可以使用nethogs来显示每个进程的TCP下载和上传速度,使用命令3.nloadnload是一个控制台应用程序,可以用来实时监控网络流量和带宽使用情况,并通过提供两个易于使用的了解图表以可视化流量。nload使用起来非常简单,直接使用nload启动即可,不需要额外的命令行选项。还提供监控时直接切换网卡的快捷键,按左右方向键可以显示不同网口的流量统计。nload工具提供的图表非常容易理解,提供了最有用的统计数据和其他信息,例如传输的数据总量和最小/最大网络使用量。4.lurmslurm有一个非常好用的网络负载监控工具。它的结果显示非常简洁,还支持很多交互快捷键,比如c切换到经典模式,s切换到分图模式,r重绘屏幕,L开启TX/RXled,m切换经典模式splitview和largeview,q可以退出。slurm在官方的Ubuntu和Debian存储库中可用,用户可以使用aptinstall命令轻松下载它,如下所示。aptinstalslurm5。collectlcollectl可用于收集描述当前系统状态的数据,并支持记录模式和回放模式。记录模式允许从实时系统获取数据并显示在终端上或写入一个或多个文件或套接字。播放模式可以从记录模式生成的一个或多个数据文件中读取和显示信息。collectl可以直接启动运行,可以显示系统CPU、磁盘和网络统计信息:可以使用-s选项指定需要统计的信息:比如统计详细的网络信息,可以使用collectl-sNcollectl是一个非常全面和强大的工具,限于篇幅,本文不再展开,以后有机会再介绍。6.SpeedometerSpeedometer是一个小而简单的工具,它只绘制通过给定网络端口的下行和上行流量图。可以使用分发管理器使用以下命令轻松安装Speedometer:sudoapt-getinstallspeedometer或yuminstalspeedometerspeedometer使用起来非常简单,可以直接从命令行或在终端speedometer-reth0-teth07中启动。tcptracktcptrack显示在给定网络接口上看到的TCP连接状态。tcptrack监控它们的状态,并以排序的更新列表显示状态、源/目标地址和带宽使用等信息,tcptrack需要以root或超级用户身份运行,需要使用要监控TCP连接的TCP连接网络端口名称implementation:sudotcptrack-ieth0如果你想要一个具体的端口,可以使用port在网卡名称中指定具体的端口:tcptrack-iwlan2port80tcptrack也支持读取.pcap格式的网络抓包,并进行统计,直接显示或者保存作为文档。三、网络抓包1、tcpdumpTCPDump是一个网络监控和网络抓包的工具。使用tcpdump通过捕获数据包来调试网络或服务器相关问题。tcpdump在Debian的默认存储库Ubuntu中可用,因此我们可以简单地使用apt管理器以sudo权限进行安装。为此,我们需要在shell或终端中运行以下命令。tcpdump需要以root或超级用户身份运行。如果要监控TCP连接的网络eth0:sudotcpdump可以通过-i指定具体的网络端口,或者通过port指定一个端口(比如web80)tcpdump-ieth0'port80'tcpcapture抓包结果可以是保存为pcap文件,之后可以使用其他工具进行后续分析,比如Wireshark工具进行分析:tcpdump-ieth0-waaa.pcapwiresharkaaa.pcap2。传输数据的连接(流)部分并以有助于协议分析或调试的方式存储数据。它重建实际数据流并将每个流存储在单独的文件中以供以后分析。它理解TCP序列号,并且数据流将被正确地重建,而不管重传或乱序传递。与tcpdump一样,tcpflow以流为单位显示数据内容,而tcpdump以数据包为单位显示数据。使用tcpflow分析更方便。tcpflow默认是不在终端打印信息,而是在当前文件夹下创建一个源ip.port-目的ip.port为文件名的文件来显示信息。可以使用-cp直接在终端打印包信息。tcpflow-cp可以通过-i指定特定网口的特定端口,如:sudotcpflow-ieth0port803。Wireshark和tsharkwireshark图形界面工具估计很多同学都不陌生。限于篇幅,我们不再介绍。这里要介绍的是wireshark的命令行小弟tshark:tshark的安装可以使用分发包管理器来安装:sudoaptinstalltssharkyuinstallwiresharktshark使用起来非常简单,直接用命令启动就可以了:tshark功能强大,还有tcpdump等各种过滤选项,这个文章不会详细介绍,这里有两个常用的例子供大家参考:抓取http协议流程:tshark-s512-ieth0-n-f'tcpdstport80'-R'http.hostandhttp.request.uri'-Tfields-ehttp。host-ehttp.request.uri解释:-s:捕获前512字节的信息;-i:抓取eth0网卡;-n:不解释网络对象的转义;-f:制定规则捕获协议为tcp,目标端口80;-R:过滤http.host和http.request.uri字段;-e:打印这两个字段;抓取数据库服务器上的sql查询语句,可用于数据库审计:tshark-s512-ieth0-n-f'tcpdstport3306'-R'mysql.query'-Tfields-emysql.query解释:-R'mysql.query':过滤掉mysql.query字段-T字段-emysql.query:打印字段Nagios网络监控Nagios是领先的开源强大监控和警报系统,允许网络/系统管理员识别和解决与服务器相关的问题在它们影响主要业务流程之前。使用Nagios系统,管理员可以在一个窗口中监控远程Linux、Windows、交换机、路由器和打印机。根据设定的阈值,对超标的主机和监控项进行告警,然后针对具体问题进行故障排除。.Nagios有一个带有活动图形监视器的Web界面。界面。如果在远程计算机上,请将localhost替换为您的IP地址。然后输入用户名并通过,然后,我们会看到如下图的信息。结束语本文介绍Linux下的网络监控工具。每个工具都有其特定的功能和选项。您可以使用Netstat和SS来了解网络信息、系统配置和网络链接。要了解哪个进程正在消耗网络带宽,可以使用nethogs,iftop可以显示每个Socket连接的带宽,nload等工具可以统计总体带宽使用情况,可以使用tcpdump、tcpflow和tshark进行抓包分析。
