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-Q | socket内核接收缓冲区尚未被应用程序读走的数据段 |
Send-Q | 未被对方确认的数据段 |
Local Address | 本端的IP地址和端口号 |
Foreign Address | 对方的IP地址和端口号 |
State | socket的状态 |
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估计出服务器的总输入和输出流量