Linux netstat命令详解和使用例子.docx
《Linux netstat命令详解和使用例子.docx》由会员分享,可在线阅读,更多相关《Linux netstat命令详解和使用例子.docx(19页珍藏版)》请在冰豆网上搜索。
Linuxnetstat命令详解和使用例子
Linuxnetstat命令详解和使用例子(显示各种网络相关信息)
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-
eth01all-
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:
显示关于路由表的信息
命