前言后台开发,netstat命令是永远绕不过去的,不仅工作中经常用到,面试也不少。netstat命令有很多相应的选项和强大的功能。netstat常用来查看后台服务进程的状态。netstat可用于打印有关网络连接、路由表和连接的统计信息。让我们了解一下。打印所有连接使用-a列出所有连接。[root@VM-16-9-centos~]#netstat-aActiveInternetconnections(serversandestablished)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp000.0.0.0:ssh0.0.0.0:*LISTENtcp00VM-16-9-centos:49326169.254.0.55:lsi-bobcatESTABLISHEDtcp052VM-16-9-centos:ssh119.137.1.7:20029ESTABLISHEDtcp00VM-16-9-centos:ssh113.110.224.255:63626ESTABLISHEDtcp600[::]:mysql[::]:*LISTENudp000.0.0.0.0.0.:*udp00VM-16-9-centos:ntp0.0.0.0:*udp00VM-16-9-centos:ntp0.0.0.0:*udp000.0.0.0:380640.0.0.0:*udp600VM-16-9-centos:ntp[::]:*udp600VM-16-9-centos:ntp[::]:*打印TCP或UDP连接使用-t选项列出TCP协议连接。[root@VM-16-9-centos~]#netstat-tActiveInternetconnections(w/oservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp00VM-16-9-centos:49326169.254.0.55:lsi-bobcatESTABLISHEDtcp052VM-16-9-centos:ssh119.137.1.7:20029ESTABLISHEDtcp00VM-16-9-centos:ssh113.110.224.255:63626ESTABLISHEDtcp00VM-16-9-centos:sshvps-d395feee.vps.:39128ESTABLISHED使用-u选项列出UDP协议的连接。[root@VM-16-9-centos~]#netstat-uActiveInternetconnections(w/oservers)ProtoRecv-QSend-QLocalAddressForeignAddressState禁用反向域名解析使用-n选项禁用域名解析,可以加快查找速度。[root@VM-16-9-centos~]#netstat-nActiveInternetconnections(w/oservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp00172.17.16.9:49326169.254.0.55:5574ESTABLISHEDtcp052172.17.16.9:22119.137.1.7:20029ESTABLISHEDtcp00172.17.16.9:22113.110.224.255:63626ESTABLISHEDtcp00172.17.16.9:52236169.254.0.4:80TIME_WAIT显示相应的程序ID和程序名使用-p选项列出正在监听的套接字。[root@VM-16-9-centos~]#netstat-pActiveInternetconnections(w/oservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programnameetcp00VM-16-9-centos:49326169.254.0.55:lsi-bobcatESTABLISHED1400/YDServicetcp052VM-16-9-centos:ssh119.137.1.7:20029ESTABLISHED22131/sshd:root@pttcp00VM-16-9-centos:sshhost-188-14-121-2:55529TIME_WAIT-tcp00VM-16-9-centos:ssh113.110.224.255:63626ESTABLISHED3s@pt打印监听连接使用-l选项列出监听套接字。[root@VM-16-9-centos~]#netstat-lActiveInternetconnections(onlyservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp000.0.0.0:ssh0.0.0.0:*LISTENtcp600[::]:mysql[::]:*LISTENudp000.0.0.0:bootpc0.0.0.0:*停下来花30秒欣赏一座漂亮的欧式建筑。这座建筑就像是小时候在童话里,看着就觉得舒服。接下来继续学习。打印连接进程信息使用-p选项查看进程信息。[root@VM-16-9-centos~]#netstat-pActiveInternetconnections(w/oservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programnameetcp00VM-16-9-centos:49326169.254.0.55:lsi-bobcatESTABLISHED1400/YDServicetcp00VM-16-9-centos:48680169.254.0.55:webcachetime_wait-tcp052vm-16-9-centos:ssh119.137.1.7:20029establedy22131/sshd:root@ptttcp00vm-16-9-centos:ssh1111110.110.110.110.222552555255226.22255:-9-centos:sshhost-188-14-121-2:56025ESTABLISHED10384/sshd:unknown打印网络工作信息统计表使用-s选项查看进程信息(只显示部分结果)。[root@VM-16-9-centos~]#netstat-sIp:7502855totalpacketsreceived0forwarded0incomingpacketsdiscarded7502837incomingpacketsdelivered7624338requestssentout40droppedbecauseofmissingrouteIcmp:938052ICMPmessagesreceived147inputICMPmessagefailed.ICMPinputhistogram:destinationunreachable:411timeoutintransit:8redirects:2echorequests:937623echoreplies:7timestamprequest:1946258ICMPmessagessent0ICMPmessagesfailedICMPoutputhistogram:destinationunreachable:8634echoreplies:937623timestampreplies:1打印网络接口使用-i查看进程信息的选项。[root@VM-16-9-centos~]#netstat-iKernelInterfacetableIfaceMTURX-OKRX-ERRRX-DRPRX-OVRTX-OKTX-ERRTX-DRPTX-OVRFlgeth0150078250940007712988000BMRUlo655361023000010230000LRU连续输出信息使用-c选项查看进程信息。[root@VM-16-9-centos~]#netstat-cActiveInternetconnections(w/oservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp00VM-16-9-centos:49326169.254.0.55:lsi-bobcatESTABLISHEDtcp052VM-16-9-centos:ssh119.137.1.7:20029ESTABLISHEDtcp00VM-16-9-centos:sshvps-d395feee.vps.:39442ESTABLISHEDtcp00VM-16-9-centos:ssh113.110.224.255:63626ESTABLISHEDtcp00VM-16-9-centos:52660165.24.24.24.24centos:sshb3d278e1.virtua.c:35113TIME_WAITtcp00VM-16-9-centos:ssh58.230.147.230:56693TIME_WAITActiveUNIXdomainsockets(w/oservers)ProtoRefCntFlagsTypeStateI-NodePathunix3[]DGRAM7444/run/systemd/notify命令检查端口进程pid检测侦听端口。[root@VM-16-9-centostest]#netstat-nap|grep12178tcp600:::8888:::*LISTEN12178/gin根据端口查看进程使用grep命令通过监听端口找出进程pid。[root@VM-16-9-centostest]#netstat-nap|grep8888tcp600:::8888:::*LISTEN12178/gin统计网络socket状态用awk命令统计socket状态对应的个数。[test]#netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'ESTABLISHED5TIME_WAIT2netstat命令不难,但是有很多选项,work也是中文常用的,一定要掌握。本文可作为您的netstat参考手册。希望本文能对大家有所帮助,我们下期再见!
