【TCP知识】03_Linux查看TCP连接状态
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
会得到类似下面的结果,具体数字会有所不同
TIME_WAIT 5856
CLOSE_WAIT 26
FIN_WAIT1 3
ESTABLISHED 4837
SYN_RECV 14
CLOSING 1
相关TCP状态解释:
LISTEN: 侦听来自远方的TCP端口的连接请求;
SYN_SENT: 在发送连接请求后等待匹配的连接请求;
SYN_RECV: 在收到和发送一个连接请求后等待对方对连接请求的确认;
ESTABLISHED: 代表一个打开的连接;
FIN_WAIT1: 等待远程TCP连接中断请求, 或先前的连接中断请求的确认;
FIN_WAIT2: 从远程TCP等待连接中断请求;
CLOSE_WAIT: 等待从本地用户发来的连接中断请求;
CLOSING: 等待远程TCP对连接中断的确认;
LAST_ACK: 等待原来的发向远程TCP的连接中断请求的确认;
TIME_WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSE: 没有任何连接状态;
如果只想看正常的并发连接,使用如下命令:
netstat -nat|grep ESTABLISHED|wc -l
PS:如果是容器,要去容器里面敲命令,不知道为啥在容器外敲,不会显示连接数;