netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
Active Internet connections :被称为有源TCP链接,Recv-Q 和Send-Q分别代表 接受和发送的队列,数字一般为0。
Active UNIX domain sockets:称为有源Unix域套接口,和socket通信一样 ,可用于本机通信,性能强
Proto :显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名
套接口类型:
-t :TCP-u :UDP-raw :RAW类型--unix :UNIX域类型--ax25 :AX25类型--ipx :ipx类型--netrom :netrom类型
状态说明:
LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2:从远程TCP等待连接中断请求CLOSE-WAIT:等待从本地用户发来的连接中断请求CLOSING:等待远程TCP对连接中断的确认LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认CLOSED:没有任何连接状态
常用命令
1、列出所有端口 #netstat -a2、列出所有 tcp 端口 #netstat -at3、列出所有 udp 端口 #netstat -au4、只显示监听端口 #netstat -l5、只列出所有监听 tcp 端口 #netstat -lt6、只列出所有监听 udp 端口 #netstat -lu7、列出所有监听 UNIX 端口 #netstat -lx8、显示所有端口的统计信息 #netstat -s9、显示 TCP 或 UDP 端口的统计信息 #netstat -st 或 -su10、 输出中显示 PID 和进程名称 #netstat -p11、netstat 输出中不显示主机,端口和用户名 (host, port or user)当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。同样可以加速输出,因为不用进行比对查询。#netstat -an如果只是不想让这三个名称中的一个被显示,使用以下命令# netsat -a --numeric-ports# netsat -a --numeric-hosts# netsat -a --numeric-users12、持续输出 netstat 信息 #netstat -c13、找出程序运行的端口 #netstat -ap | grep ':80'14、查看连接某服务端口最多的的IP地址(前20个)#netstat -nat | grep "10.1.62.23:443" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -2015、TCP各种状态列表 #netstat -nat |awk '{print $6}'统计数量#netstat -nat |awk '{print $6}'|sort|uniq -c排序#netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'16、直接统计tcp数量监听的数量#netstat -ant | wc -l参考文献:https://www.cnblogs.com/ggjucheng/p/2316661.htmlhttps://www.cnblogs.com/jackhub/p/3782598.html
显示网卡列表
显示网络统计
显示TCP传输协议的连线状况
显示正在使用Socket的程序识别码和程序名称 netstat -p
这样就可以统计出正在连接的设备了,使用awk 分割打印#
#分割第四个字段以22结尾的值,wc命令统计 netstat -tnp | awk '$4~/.*:22$/' | wc -l