Linux查看tcp连接数
1 查看所有tcp连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
或者(效果等同)
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
返回结果:
TIME_WAIT 150
FIN_WAIT1 15
FIN_WAIT2 1
ESTABLISHED 55
SYN_RECV 21
CLOSING 2
LAST_ACK 4
State:
表TCP连接状态
ESTABLISHED:
指TCP连接已建立,双方可以进行方向数据传递
CLOSE_WAIT:
这种状态的含义其实是表示在等待关闭。当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话, 那么你也就可以close 这个SOCKET,发送 FIN 报文给对方,也即关闭连接。所以你在CLOSE_WAIT 状态下,需要完成的事情是等待你去关闭连接。
LISTENING:
指TCP正在监听端口,可以接受链接
TIME_WAIT:
指连接已准备关闭。表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2 状态。
FIN_WAIT_1:
这个状态要好好解释一下,其实FIN_WAIT_1和 FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报 文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN 报文,此时该SOCKET即进入到FIN_WAIT_1 状态。而当对方回应ACK 报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况 下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2 状态还有时常常可以用 netstat看到。
FIN_WAIT_2:
上面已经详细解释了这种状态,实际上FIN_WAIT_2 状态下的SOCKET,表示半连接,也即有一方要求close 连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。
LAST_ACK:
是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了
SYNC_RECEIVED:
收到对方的连接建立请求,这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。
SYNC_SEND:
已经主动发出连接建立请求。与SYN_RCVD遥想呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。
2 查看具体ip的连接数量
netstat -an|grep ESTA|awk '{print $5}'|awk 'BEGIN {FS=":"} {print $1 "\n"}'|sort|uniq -c
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
Linux查看tcp连接数相关推荐
- 查看linux中tcp连接数
一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协 ...
- linux查看ssh连接数,查看linux中的TCP连接数
一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协 ...
- 查看linux 服务器 tcp 连接数状态
1)在linux 服务器查看tcp 连接数的命令: netstat -tan|awk '$1~/tcp/{aa[$NF]++}END{for (h in aa)print h,aa[h]}' [roo ...
- Linux查看网络连接数,统计网络连接数(netstat、Apache连接数)
一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协 ...
- 如何解决 linux socket TIME_WAIT 过多造成的问题(SYN、ACK、FIN、MSL、RST含义)netstat查看TCP连接数命令
文章目录 解决方法1 疑问:tcp_tw_reuse如何打开?要编译linux内核? 解决方法2:优化程序,减少TCP链接的创建与关闭,同一台服务器,连接一次就好了,不要连接了又关闭,然后再连接 相应 ...
- linux查看tcp络连接日志,Linux监控TCP连接数并触发日志记录
场景 由于服务器经常半夜出现TCP连接数暴增,没办法及时查看处理,回头看记录又看不到现象,不好排查,故编写此脚本用于记录日志. 脚本内容#!/bin/bash #任务计划设置此脚本每分钟执行一次即可, ...
- linux查看 tcp连接对应的程序,轻轻松松查看TCP连接及发起程序
引子: Windows的mspaint(就是画图)程序未知原因崩溃了,提示用户是否将发送错误报告(Windows7的错误报告服务程序是WerFault.exe)给Microsoft Corporati ...
- linux查看tcp连接状态_Linux使用lsof查看打开的文件和网络连接
lsof是List Open Files的缩写.顾名思义,它用来查看系统中进程打开了哪些文件:因为Linux几乎所有的设备都可以看成是文件,所以lsof经常也可以用来查看管道,sockets的使用状态 ...
- Linux 查看tcp 请求 中 的各个 状态 数据 ,如timewait
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}' ...
最新文章
- NetBeans配置Xdebug 远程调试PHP
- Win2008远程多用户登陆的配置方法
- python转化为字符串格式_Python格式化字符串~转
- 点对点信道互连以太网实验_以太网防雷器通讯参数测试(二)——防雷器对高速链路影响的参数...
- android跨进程事件注入(程序模拟用户输入)
- python 描述_python描述符
- 云控参数下发android,Oldboot鬼影又现,另一例山寨手机中运用云端远控技术的木马...
- InfoQ编辑2018年推荐阅读清单(第二部分)
- pentaho mysql_pentaho移植到MySQL
- 设计模式【2.1】-- 简单工厂模式怎么演变成工厂方法模式?
- 成为黑客需要学习什么技能?
- win10去掉快捷方式小箭头_电脑一分钟小技巧:桌面快捷方式小箭头去除与恢复方法...
- sd卡广播的理解总结
- PHP项目接入钉钉企业免登,企业应用钉钉免钉流程(附代码)
- windows装android软件,电脑上运行安卓软件WindowsAndroid如何成功安装
- 如何将QQ号设置成手机号?
- MyBatisPlus —— 7、代码生成器
- 在职和辞职,哪个状态找工作比较好?
- tengine php fpm,FPM打包工具制作Tengine为RPM包详解
- 学校计算机只要求一级,如何高效通过计算机一级的考试?也许考试很简单,但也要认真对待...
热门文章
- guess soldes La Hamilton Khaki décollage Auto Chrono Limited Edition
- 【Android】登陆界面设计(LayoutInflater)
- TOEFL 综合写作模板
- 学系统集成项目管理工程师(中项)系列02_文件和标准
- CF 546 div.2 D. Nastya Is Buying Lunch(思维+贪心)
- 直播平台系统源码APP怎样来检测
- 模型优化-AdaGrad
- 【数字信号处理】卷积和乘法系列3之傅里叶变换对
- RV32IM_指令介绍
- Offer 62. 约瑟环(规律问题-递归-中等)