netstat命令的功能是显示网络链接、路由表和网络接口的信息,能够让用户得知有哪些网络链接正在运做。在平常工做中,咱们最经常使用的也就两个参数,即netstat –an,以下所示:shell
[root@tiaobanji ~]# netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:41224 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:21224 0.0.0.0:* LISTEN
netstat -an参数中stat(状态)的含义以下:
LISTEN:侦听来自远方的TCP端口的链接请求;
SYN-SENT:在发送链接请求后等待匹配的链接请求;
SYN-RECEIVED:在收到和发送一个链接请求后等待对方对链接请求的确认;
ESTABLISHED:表明一个打开的链接,咱们经常使用此做为并发链接数;
FIN-WAIT-1:等待远程TCP链接中断请求,或先前的链接中断请求的确认;
FIN-WAIT-2:从远程TCP等待链接中断请求;
CLOSE-WAIT:等待从本地用户发来的链接中断请求;
CLOSING:等待远程TCP对链接中断的确认;
LAST-ACK:等待原来发向远程TCP的链接中断的确认;
TIME-WAIT:等待足够的时间以确保远程TCP链接收到中断请求的确认;
CLOSED:没有任何链接状态;服务器
在平常工做中,咱们能够用shell组合命令来查看服务器的TCP链接状态并汇总,命令以下:网络
netstat -an|awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}'
参数说明:
CLOSED:没有链接活动或正在进行的;
LISTEN:服务器正在等待的进入呼叫;
SYN_RECV:一个链接请求已经到达,等待确认;
SYN_SENT:应用已经开始,打开一个链接;
ESTABLISHED:正常数据传输状态,也能够近似的理解为当前服务器的并发数;
FIN_WAIT1:应用已经完成;
FIN_WAIT2:另外一边赞成释放;
ITMED_WAIT:等待全部分组死掉;
CLOSING:两边同时尝试关闭;
TIME_WAIT:另外一边已初始化一个释放;
LAST_ACK:等待全部分组死掉;并发
统计 TCP链接数 命令:tcp
netstat -an |grep 'ESTABLISHED' |grep 'tcp' |wc -l