1.netstat

netstat是一个功能很强大的网络信息统计工具。它可以打印本地网卡接口上的全部连接,路由表信息,网卡接口信息的等。一般情况下我们大量用到的是TCP连接及其状态信息,因为我们如果要获得路由表信息和网卡接口信息,我们可以使用输出内容更丰富的route和ifconfig命令

netstat的常见参数

参数说明
-n使用IP地址表示主机,而不是主机名;使用数字表示端口而不是服务名称
-a显示结果中包含监听socket
-t仅显示TCP连接
-r显示路由信息
-i显示网卡接口的数据流量
-c每隔1s输出一次
-o显示socket定时器,比如保活定时器的信息
-p显示socket所属进程的PID和名字
我们可以用前面学过的nc开个测试服务器和客户端进行netstat的命林测试,事例如下

当用nc在本机127.0.0.1端口为4444的服务器进程,然后在用nc当客户机进行连接

netstat -nat|grep 127.0.0.1:4444

显示结果如下图

由上图可知netstat的每行都输出6个字段,其名称和含义分别为

名称含义
Proto协议名
Recv-Qsocket内核接收缓冲区尚未被应用程序读走的数据段
Send-Q未被对方确认的数据段
Local Address本端的IP地址和端口号
Foreign Address对方的IP地址和端口号
Statesocket的状态

2.vmstat

vmstat的缩写是virtual memory statistics的缩写,它能实时输出系统的各种资源的使用情况,比如进程信息,内存使用情况,CPU使用率以及I/O使用情况

vmstat常见的参数

参数说明
-f显示系统自启动以来执行的fork次数
-s显示内存相关的统计信息
-d显示磁盘相关的统计信息
-p显示指定磁盘的显示信息
delay采样间隔,即每隔多少秒刷新一次
count采样次数,共输出多少次采样信息

3.ifstat

ifstat是interface statistics的缩写,它是一个简单的网络流量监控工具

ifstat的参数

参数说明
-a检测系统上的所有网卡接口
-i指定要检测的网卡接口
-t在每行输出信息前加上事件戳
-b以Kbit/s显示数据,而不是默认的KB/S
delay采样间隔
count采样次数

具体事例如下

ifstat -a 1 5  #每个1s输出一次,共5次

从输出来看博主本机有3个网卡接口,ifstat的每条输出都以KB/S为单位显示个网卡接口上接收和发送数据的速率。所以我们可以用ifstat估计出服务器的总输入和输出流量

Logo

更多推荐