Linux服务器当前各种TCP网络连接状态的统计

例如服务器上的TCP网络连接状态显示如下:

[root@huzhenwei ~]# netstat -nat 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:554                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:1935                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:3001                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:1947                0.0.0.0:*                   LISTEN      
tcp        0      0 172.16.6.93:80              172.16.6.93:51201           ESTABLISHED 
tcp        0      0 172.16.6.93:80              172.16.6.93:51202           ESTABLISHED 
tcp        0      0 172.16.6.93:10050           172.16.3.112:32769          TIME_WAIT   
tcp        0      0 172.16.6.93:51201           172.16.6.93:80              ESTABLISHED 
tcp        0      0 172.16.6.93:51202           172.16.6.93:80              ESTABLISHED 
tcp        0      1 172.16.6.93:53276           172.16.3.162:8080           SYN_SENT    
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0    844 ::ffff:172.16.6.93:22       ::ffff:172.16.1.36:56495    ESTABLISHED 


统计命令和计算结果如下:

[root@huzhenwei ~]# netstat -nat | awk 'FNR>2{print $NF}' | sort | uniq -c
      5 ESTABLISHED
      9 LISTEN
      1 TIME_WAIT


 参数说明:

netstat -nat 参数t表示只列出tcp连接

awk 'FNR>2{print $NF}'  FNR表示这条记录的行号,NF表示这一条记录中的字段总数


TCP连接状态的定义:

       ESTABLISHED
              The socket has an established connection.


       SYN_SENT
              The socket is actively attempting to establish a connection.


       SYN_RECV
              A connection request has been received from the network.


       FIN_WAIT1
              The socket is closed, and the connection is shutting down.


       FIN_WAIT2
              Connection is closed, and the socket is waiting for a shutdown from the remote end.


       TIME_WAIT
              The socket is waiting after close to handle packets still in the network.


       CLOSED The socket is not being used.


       CLOSE_WAIT
              The remote end has shut down, waiting for the socket to close.


       LAST_ACK
              The remote end has shut down, and the socket is closed. Waiting for acknowledgement.


       LISTEN The  socket is listening for incoming connections.  Such sockets are not included in the output
              unless you specify the --listening (-l) or --all (-a) option.


       CLOSING
              Both sockets are shut down but we still don’t have all our data sent.


       UNKNOWN
              The state of the socket is unknown.

猜你喜欢

转载自blog.csdn.net/huzhenwei/article/details/6901044
今日推荐