原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94
NetStat
netstat -pan|grep 80
-a (all)显示所有选项,netstat默认不显示LISTEN相关
-n 拒绝显示别名,能显示数字的全部转化成数字。(重要)
-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)
需要注意的一个问题是:
端口所对应的state状态为LISTENING的时候,并不表示当前端口已被占用或被使用中,只有state的状态为:LISTEN时,才表示当前端口是正常监听的;
常用命令
查看当前机器的并发连接数
netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} '
netstat –an|grep CLOSE_WAIT –c 查询等待关闭连接数,详细指令如下
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看每个IP跟服务器建立的链接数
netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
查看每个IP跟服务器正在通信的链接数(ESTABLISHED / CLOSE_WAIT)
netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
状态说明
ESTABLISHED 表示正在通信
TIME_WAIT 表示主动关闭
CLOSE_WAIT 表示被动关闭
SYN_RECV //一个连接请求已经到达,等待确认
ESTABLISHED //正常数据传输状态/当前并发连接数
FIN_WAIT2 //另一边已同意释放
ITMED_WAIT //等待所有分组死掉
CLOSING //两边同时尝试关闭
TIME_WAIT //另一边已初始化一个释放
LAST_ACK //等待所有分组死掉