linux命令分享:netstat命令详解,netstat命令详解
linux命令分享:netstat命令详解,netstat命令详解
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用netstat查一查为什么会出现这些情况了。
1.命令格式:
netstat[-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]
2.命令功能:
netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
3.命令参数:
-a或–all显示所有连线中的Socket。
-A<网络类型>或–<网络类型>列出该网络类型连线中的相关地址。
-c或–continuous持续列出网络状态。
-C或–cache显示路由器配置的快取信息。
-e或–extend显示网络其他相关信息。
-F或–fib显示FIB。
-g或–groups显示多重广播功能群组组员名单。
-h或–help在线帮助。
-i或–interfaces显示网络界面信息表单。
-l或–listening显示监控中的服务器的Socket。
-M或–masquerade显示伪装的网络连线。
-n或–numeric直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic显示网络硬件外围设备的符号连接名称。
-o或–timers显示计时器。
-p或–programs显示正在使用Socket的程序识别码和程序名称。
-r或–route显示RoutingTable。
-s或–statistice显示网络工作信息统计表。
-t或–tcp显示TCP传输协议的连线状况。
-u或–udp显示UDP传输协议的连线状况。
-v或–verbose显示指令执行过程。
-V或–version显示版本信息。
-w或–raw显示RAW传输协议的连线状况。
-x或–unix此参数的效果和指定”-Aunix”参数相同。
–ip或–inet此参数的效果和指定”-Ainet”参数相同。
4.使用实例:
实例1:无参数使用
命令:
netstat
输出:
[root@localhost~]#netstat
ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp0268192.168.120.204:ssh10.2.0.68:62420ESTABLISHED
udp00192.168.120.204:437110.58.119.119:domainESTABLISHED
ActiveUNIXdomainsockets(w/oservers)
ProtoRefCntFlagsTypeStateI-NodePath
unix2[]DGRAM1491@/org/kernel/udev/udevd
unix4[]DGRAM7337/dev/log
unix2[]DGRAM708823
unix2[]DGRAM7539
unix3[]STREAMCONNECTED7287
unix3[]STREAMCONNECTED7286
[root@localhost~]#
说明:
从整体上看,netstat的输出结果可以分为两个部分:
一个是ActiveInternetconnections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
另一个是ActiveUNIXdomainsockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
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:没有任何连接状态
实例2:列出所有端口
命令:
netstat-a
输出:
[root@localhost~]#netstat-a
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00localhost:smux*:*LISTEN
tcp00*:svn*:*LISTEN
tcp00*:ssh*:*LISTEN
tcp0284192.168.120.204:ssh10.2.0.68:62420ESTABLISHED
udp00localhost:syslog*:*
udp00*:snmp*:*
ActiveUNIXdomainsockets(serversandestablished)
ProtoRefCntFlagsTypeStateI-NodePath
unix2[ACC]STREAMLISTENING708833/tmp/ssh-yKnDB15725/agent.15725
unix2[ACC]STREAMLISTENING7296/var/run/audispd_events
unix2[]DGRAM1491@/org/kernel/udev/udevd
unix4[]DGRAM7337/dev/log
unix2[]DGRAM708823
unix2[]DGRAM7539
unix3[]STREAMCONNECTED7287
unix3[]STREAMCONNECTED7286
[root@localhost~]#
说明:
显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那些连接。
实例3:显示当前UDP连接状况
命令:
netstat-nu
输出:
[root@andy~]#netstat-nu
ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
udp00::ffff:192.168.12:53392::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:56723::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:56480::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:58154::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:44227::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:36954::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:53984::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:57703::ffff:192.168.9.120:10000ESTABLISHED
udp00::ffff:192.168.12:53613::ffff:192.168.9.120:10000ESTABLISHED
[root@andy~]#
说明:
实例4:显示UDP端口号的使用情况
命令:
netstat-apu
输出:
[root@andy~]#netstat-apu
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programname
udp00*:57604*:*28094/java
udp00*:40583*:*21220/java
udp00*:45451*:*14583/java
udp00::ffff:192.168.12:53392::ffff:192.168.9.120:ndmpESTABLISHED19327/java
udp00*:52370*:*15841/java
udp00::ffff:192.168.12:56723::ffff:192.168.9.120:ndmpESTABLISHED15841/java
udp00*:44182*:*31757/java
udp00*:48155*:*5476/java
udp00*:59808*:*17333/java
udp00::ffff:192.168.12:56480::ffff:192.168.9.120:ndmpESTABLISHED28094/java
udp00::ffff:192.168.12:58154::ffff:192.168.9.120:ndmpESTABLISHED15429/java
udp00*:36780*:*10091/java
udp00*:36795*:*24594/java
udp00*:41922*:*20506/java
udp00::ffff:192.168.12:44227::ffff:192.168.9.120:ndmpESTABLISHED17333/java
udp00*:34258*:*8866/java
udp00*:55508*:*11667/java
udp00*:36055*:*12425/java
udp00::ffff:192.168.12:36954::ffff:192.168.9.120:ndmpESTABLISHED16532/java
udp00::ffff:192.168.12:53984::ffff:192.168.9.120:ndmpESTABLISHED20506/java
udp00::ffff:192.168.12:57703::ffff:192.168.9.120:ndmpESTABLISHED31757/java
udp00::ffff:192.168.12:53613::ffff:192.168.9.120:ndmpESTABLISHED3199/java
udp00*:56309*:*15429/java
udp00*:54007*:*16532/java
udp00*:39544*:*3199/java
udp00*:43900*:*19327/java
[root@andy~]#
说明:
实例5:显示网卡列表
命令:
netstat-i
输出:
[root@andy~]#netstat-i
KernelInterfacetable
IfaceMTUMetRX-OKRX-ERRRX-DRPRX-OVRTX-OKTX-ERRTX-DRPTX-OVRFlg
eth015000151818887000198928403000BMRU
lo164360107235000107235000LRU
[root@andy~]#
说明:
实例6:显示组播组的关系
命令:
netstat-g
输出:
[root@andy~]#netstat-g
IPv6/IPv4GroupMemberships
InterfaceRefCntGroup
——————————————
lo1all-systems.mcast.net
eth01all-systems.mcast.net
lo1ff02::1
eth01ff02::1:ffff:9b0c
eth01ff02::1
[root@andy~]#
说明:
实例7:显示网络统计信息
命令:
netstat-s
输出:
[root@localhost~]#netstat-s
Ip:
530999totalpacketsreceived
0forwarded
0incomingpacketsdiscarded
530999incomingpacketsdelivered
8258requestssentout
1droppedbecauseofmissingroute
Icmp:
90ICMPmessagesreceived
0inputICMPmessagefailed.
ICMPinputhistogram:
destinationunreachable:17
echorequests:1
echoreplies:72
106ICMPmessagessent
0ICMPmessagesfailed
ICMPoutputhistogram:
destinationunreachable:8
echorequest:97
echoreplies:1
IcmpMsg:
InType0:72
InType3:17
InType8:1
OutType0:1
OutType3:8
OutType8:97
Tcp:
8activeconnectionsopenings
15passiveconnectionopenings
8failedconnectionattempts
3connectionresetsreceived
1connectionsestablished
3132segmentsreceived
2617segmentssendout
53segmentsretransmited
0badsegmentsreceived.
252resetssent
Udp:
0packetsreceived
0packetstounknownportreceived.
0packetreceiveerrors
5482packetssent
TcpExt:
1invalidSYNcookiesreceived
1TCPsocketsfinishedtimewaitinfasttimer
57delayedackssent
Quickackmodewasactivated50times
60packetsdirectlyqueuedtorecvmsgprequeue.
68packetsdirectlyreceivedfrombacklog
4399packetsdirectlyreceivedfromprequeue
520packetsheaderpredicted
51packetsheaderpredictedanddirectlyqueuedtouser
1194acknowledgmentsnotcontainingdatareceived
21predictedacknowledgments
0TCPdatalossevents
1timeoutsafterrenofastretransmit
9retransmitsinslowstart
42otherTCPtimeouts
3connectionsabortedduetotimeout
IpExt:
InBcastPkts:527777
说明:
按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
实例8:显示监听的套接口
命令:
netstat-l
输出:
[root@localhost~]#netstat-l
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00localhost:smux*:*LISTEN
tcp00*:svn*:*LISTEN
tcp00*:ssh*:*LISTEN
udp00localhost:syslog*:*
udp00*:snmp*:*
ActiveUNIXdomainsockets(onlyservers)
ProtoRefCntFlagsTypeStateI-NodePath
unix2[ACC]STREAMLISTENING708833/tmp/ssh-yKnDB15725/agent.15725
unix2[ACC]STREAMLISTENING7296/var/run/audispd_events
[root@localhost~]#
说明:
实例9:显示所有已建立的有效连接
命令:
netstat-n
输出:
[root@localhost~]#netstat-n
ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp0268192.168.120.204:2210.2.0.68:62420ESTABLISHED
ActiveUNIXdomainsockets(w/oservers)
ProtoRefCntFlagsTypeStateI-NodePath
unix2[]DGRAM1491@/org/kernel/udev/udevd
unix4[]DGRAM7337/dev/log
unix2[]DGRAM708823
unix2[]DGRAM7539
unix3[]STREAMCONNECTED7287
unix3[]STREAMCONNECTED7286
[root@localhost~]#
说明:
实例10:显示关于以太网的统计数据
命令:
netstat-e
输出:
[root@localhost~]#netstat-e
ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressStateUserInode
tcp0248192.168.120.204:ssh10.2.0.68:62420ESTABLISHEDroot708795
ActiveUNIXdomainsockets(w/oservers)
ProtoRefCntFlagsTypeStateI-NodePath
unix2[]DGRAM1491@/org/kernel/udev/udevd
unix4[]DGRAM7337/dev/log
unix2[]DGRAM708823
unix2[]DGRAM7539
unix3[]STREAMCONNECTED7287
unix3[]STREAMCONNECTED7286
[root@localhost~]#
说明:
用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)
实例11:显示关于路由表的信息
命令:
netstat-r
输出:
[root@localhost~]#netstat-r
KernelIProutingtable
DestinationGatewayGenmaskFlagsMSSWindowirttIface
192.168.120.0*255.255.255.0U000eth0
192.168.0.0192.168.120.1255.255.0.0UG000eth0
10.0.0.0192.168.120.1255.0.0.0UG000eth0
default192.168.120.2400.0.0.0UG000eth0
[root@localhost~]#
说明:
实例12:列出所有tcp端口
命令:
netstat-at
输出:
[root@localhost~]#netstat-at
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00localhost:smux*:*LISTEN
tcp00*:svn*:*LISTEN
tcp00*:ssh*:*LISTEN
tcp0284192.168.120.204:ssh10.2.0.68:62420ESTABLISHED
[root@localhost~]#
说明:
实例13:统计机器中网络连接各个状态个数
命令:
netstat-a|awk’/^tcp/{++S[NF]} END {for(a in S) print a, S[a]}'
输出:
[root@localhost ~]# netstat -a | awk '/^tcp/ {++S[NF]} END {for(a in S) print a, S[a]}'
ESTABLISHED 1
LISTEN 3
[root@localhost ~]#
说明:
实例14:把状态全都取出来后使用uniq -c统计后再进行排序
命令:
netstat -nat |awk '{print 6}'|sort|uniq -c
输出:
评论暂时关闭