0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

netstat命令故障排查總結

jf_TEuU2tls ? 來源:博客園-ggjucheng ? 2023-01-30 09:46 ? 次閱讀

前言

大家好,這里是浩道linux,主要給大家分享linux、python、網(wǎng)絡通信相關的IT知識平臺。

今天浩道跟大家分享一篇關于講解netstat命令的硬核干貨,個人覺得本文羅列的實例比我平時關注的要詳細得多,所以分享給大家學習!

簡介

Netstat 命令用于顯示各種網(wǎng)絡相關信息,如網(wǎng)絡連接,路由表,接口狀態(tài) (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。

輸出信息含義

執(zhí)行netstat后,其輸出結果為

ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp02210.34.6.89:telnet210.34.6.96:2873ESTABLISHED
tcp2960210.34.6.89:1165210.34.6.84:netbios-ssnESTABLISHED
tcp00localhost.localdom:9001localhost.localdom:1162ESTABLISHED
tcp00localhost.localdom:1162localhost.localdom:9001ESTABLISHED
tcp080210.34.6.89:1161210.34.6.10:netbios-ssnCLOSE

ActiveUNIXdomainsockets(w/oservers)
ProtoRefCntFlagsTypeStateI-NodePath
unix1[]STREAMCONNECTED16178@000000dd
unix1[]STREAMCONNECTED16176@000000dc
unix9[]DGRAM5292/dev/log
unix1[]STREAMCONNECTED16182@000000df

從整體上看,netstat的輸出結果可以分為兩個部分:

一個是Active Internet connections,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發(fā)送隊列。這些數(shù)字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。

另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網(wǎng)絡套接字一樣,但是只能用于本機通信,性能可以提高一倍)。

Proto顯示連接使用的協(xié)議,RefCnt表示連接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態(tài),Path表示連接到套接口的其它進程使用的路徑名。

常見參數(shù)

-a (all)顯示所有選項,
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數(shù)字的全部轉化成數(shù)字。
-l 僅列出有在 Listen (監(jiān)聽) 的服務狀態(tài)

-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協(xié)議進行統(tǒng)計
-c 每隔一個固定時間,執(zhí)行該netstat命令。

提示:LISTEN和LISTENING的狀態(tài)只有用-a或者-l才能看到

實用命令實例

1、列出所有端口 (包括監(jiān)聽和未監(jiān)聽的)

列出所有端口 netstat -a

#netstat-a|more
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00localhost:30037*:*LISTEN
udp00*:bootpc*:*

ActiveUNIXdomainsockets(serversandestablished)
ProtoRefCntFlagsTypeStateI-NodePath
unix2[ACC]STREAMLISTENING6135/tmp/.X11-unix/X0
unix2[ACC]STREAMLISTENING5140/var/run/acpid.socket

列出所有 tcp 端口 netstat -at

#netstat-at
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00localhost:30037*:*LISTEN
tcp00localhost:ipp*:*LISTEN
tcp00*:smtp*:*LISTEN
tcp600localhost:ipp[::]:*LISTEN

列出所有 udp 端口 netstat -au

#netstat-au
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressState
udp00*:bootpc*:*
udp00*:49119*:*
udp00*:mdns*:*

2、列出所有處于監(jiān)聽狀態(tài)的 Sockets

只顯示監(jiān)聽端口 netstat -l

#netstat-l
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00localhost:ipp*:*LISTEN
tcp600localhost:ipp[::]:*LISTEN
udp00*:49119*:*

只列出所有監(jiān)聽 tcp 端口 netstat -lt

#netstat-lt
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00localhost:30037*:*LISTEN
tcp00*:smtp*:*LISTEN
tcp600localhost:ipp[::]:*LISTEN

只列出所有監(jiān)聽 udp 端口 netstat -lu

#netstat-lu
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
udp00*:49119*:*
udp00*:mdns*:*

只列出所有監(jiān)聽 UNIX 端口 netstat -lx

#netstat-lx
ActiveUNIXdomainsockets(onlyservers)
ProtoRefCntFlagsTypeStateI-NodePath
unix2[ACC]STREAMLISTENING6294private/maildrop
unix2[ACC]STREAMLISTENING6203public/cleanup
unix2[ACC]STREAMLISTENING6302private/ifmail
unix2[ACC]STREAMLISTENING6306private/bsmtp

3、顯示每個協(xié)議的統(tǒng)計信息

顯示所有端口的統(tǒng)計信息 netstat -s

#netstat-s
Ip:
11150totalpacketsreceived
1withinvalidaddresses
0forwarded
0incomingpacketsdiscarded
11149incomingpacketsdelivered
11635requestssentout
Icmp:
0ICMPmessagesreceived
0inputICMPmessagefailed.
Tcp:
582activeconnectionsopenings
2failedconnectionattempts
25connectionresetsreceived
Udp:
1183packetsreceived
4packetstounknownportreceived.
.....

顯示 TCP 或 UDP 端口的統(tǒng)計信息 netstat -st 或 -su

#netstat-st
#netstat-su

4、在 netstat 輸出中顯示 PID 和進程名稱 netstat -p

netstat -p 可以與其它開關一起使用,就可以添加 “PID/進程名稱” 到 netstat 輸出中,這樣 debugging 的時候可以很方便的發(fā)現(xiàn)特定端口運行的程序。

#netstat-pt
ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programname
tcp10ramesh-laptop.loc:47212192.168.185.75:wwwCLOSE_WAIT2109/firefox
tcp00ramesh-laptop.loc:52750lax:wwwESTABLISHED2109/firefox

5、在 netstat 輸出中不顯示主機,端口和用戶名 (host, port or user)

當你不想讓主機,端口和用戶名顯示,使用 netstat -n。將會使用數(shù)字代替那些名稱。

同樣可以加速輸出,因為不用進行比對查詢。

#netstat-an

如果只是不想讓這三個名稱中的一個被顯示,使用以下命令

#netsat-a--numeric-ports
#netsat-a--numeric-hosts
#netsat-a--numeric-users

6、持續(xù)輸出 netstat 信息

netstat 將每隔一秒輸出網(wǎng)絡信息。

#netstat-c
ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00ramesh-laptop.loc:36130101-101-181-225.ama:wwwESTABLISHED
tcp11ramesh-laptop.loc:52564101.11.169.230:wwwCLOSING
tcp00ramesh-laptop.loc:43758server-101-101-43-2:wwwESTABLISHED
tcp11ramesh-laptop.loc:42367101.101.34.101:wwwCLOSING

7、顯示系統(tǒng)不支持的地址族 (Address Families)

netstat--verbose

在輸出的末尾,會有如下的信息

netstat:nosupportfor`AFIPX'onthissystem.
netstat:nosupportfor`AFAX25'onthissystem.
netstat:nosupportfor`AFX25'onthissystem.
netstat:nosupportfor`AFNETROM'onthissystem.

8、顯示核心路由信息 netstat -r

#netstat-r
KernelIProutingtable
DestinationGatewayGenmaskFlagsMSSWindowirttIface
192.168.1.0*255.255.255.0U000eth2
link-local*255.255.0.0U000eth2
default192.168.1.10.0.0.0UG000eth2

注意:使用 netstat -rn 顯示數(shù)字格式,不查詢主機名稱。

9、找出程序運行的端口

并不是所有的進程都能找到,沒有權限的會不顯示,使用 root 權限查看所有的信息。

#netstat-ap|grepssh
tcp10dev-db:ssh101.174.100.22:39213CLOSE_WAIT-
tcp10dev-db:ssh101.174.100.22:57643CLOSE_WAIT-

找出運行在指定端口的進程

#netstat-an|grep':80'

10、顯示網(wǎng)絡接口列表

#netstat-i
KernelInterfacetable
IfaceMTUMetRX-OKRX-ERRRX-DRPRX-OVRTX-OKTX-ERRTX-DRPTX-OVRFlg
eth01500000000000BMU
eth2150002619600026883600BMRU
lo16436040004000LRU

顯示詳細信息,像是 ifconfig 使用 netstat -ie:

#netstat-ie
KernelInterfacetable
eth0Linkencap:EthernetHWaddr004011:11
UPBROADCASTMULTICASTMTU:1500Metric:1
RXpackets:0errors:0dropped:0overruns:0frame:0
TXpackets:0errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:0(0.0B)TXbytes:0(0.0B)
Memory:f6ae0000-f6b00000

11、IP和TCP分析

查看連接某服務端口最多的的IP地址

wss8848@ubuntu:~$netstat-nat|grep"192.168.1.15:22"|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-nr|head-20
18221.136.168.36
3154.74.45.242
278.173.31.236
262.183.207.98
2192.168.1.14
2182.48.111.215
2124.193.219.34
2119.145.41.2
2114.255.41.30
175.102.11.99

TCP各種狀態(tài)列表

wss8848@ubuntu:~$netstat-nat|awk'{print$6}'
established)
Foreign
LISTEN
TIME_WAIT
ESTABLISHED
TIME_WAIT
SYN_SENT

先把狀態(tài)全都取出來,然后使用uniq -c統(tǒng)計,之后再進行排序。

wss8848@ubuntu:~$netstat-nat|awk'{print$6}'|sort|uniq-c
143ESTABLISHED
1FIN_WAIT1
1Foreign
1LAST_ACK
36LISTEN
6SYN_SENT
113TIME_WAIT
1established)

最后的命令如下:

netstat-nat|awk'{print$6}'|sort|uniq-c|sort-rn

分析access.log獲得訪問前10位的ip地址

awk'{print$1}'access.log|sort|uniq-c|sort-nr|head-10

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11123

    瀏覽量

    207919
  • 網(wǎng)絡
    +關注

    關注

    14

    文章

    7389

    瀏覽量

    88216
  • 命令
    +關注

    關注

    5

    文章

    658

    瀏覽量

    21929
  • python
    +關注

    關注

    53

    文章

    4753

    瀏覽量

    84081
  • netstat
    +關注

    關注

    0

    文章

    8

    瀏覽量

    2065

原文標題:有了這份netstat命令故障排查總結,從此排錯不求人!

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux netstat命令詳解

    Netstat 命令用于顯示各種網(wǎng)絡相關信息,如網(wǎng)絡連接,路由表,接口狀態(tài) (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
    發(fā)表于 12-26 09:45 ?796次閱讀

    壓力變送器出現(xiàn)故障 如何排查?

    最近去現(xiàn)場比較多,通過和現(xiàn)場技術員的溝通交流,對壓力變送器的現(xiàn)場使用和故障排查有了更進一步的了解,這里總結了幾點現(xiàn)場如何排查壓力傳感器故障
    發(fā)表于 09-17 16:17

    Linux SSH遠程管理故障如何排查

    SSH遠程管理故障排查方案:1、檢測兩個機器是否暢通  兩個機器之間是否暢通,查看物理鏈路是否有問題(網(wǎng)線網(wǎng)卡、IP是否正確)  第1步:物理鏈路是否暢通,比喻為“高速公路是否暢通”  ping
    發(fā)表于 07-25 16:45

    Linux SSH遠程管理故障如何排查?

    SSH遠程管理故障排查方案:1、檢測兩個機器是否暢通  兩個機器之間是否暢通,查看物理鏈路是否有問題(網(wǎng)線網(wǎng)卡、IP是否正確)  第1步:物理鏈路是否暢通,比喻為“高速公路是否暢通”  ping
    發(fā)表于 11-30 17:40

    netstat命令詳解

    在Internet RFC標準中,Netstat的定義是: Netstat是在內(nèi)核中訪問網(wǎng)絡連接狀態(tài)及其相關信息的程序,它能提供TCP連接,TCP和UDP監(jiān)聽,進程內(nèi)存管理的相關報告。Netstat是控制臺
    的頭像 發(fā)表于 02-10 09:31 ?6356次閱讀
    <b class='flag-5'>netstat</b><b class='flag-5'>命令</b>詳解

    netstat怎么使用

    Netstat 命令用于顯示各種網(wǎng)絡相關信息,如網(wǎng)絡連接,路由表,接口狀態(tài) (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
    的頭像 發(fā)表于 02-10 10:22 ?3518次閱讀
    <b class='flag-5'>netstat</b>怎么使用

    netstat查看端口占用

    Netstat是控制臺命令,是一個監(jiān)控TCP/IP網(wǎng)絡的非常有用的工具,它可以顯示路由表、實際的網(wǎng)絡連接以及每一個網(wǎng)絡接口設備的狀態(tài)信息。Netstat用于顯示與IP、TCP、UDP和ICMP協(xié)議相關的統(tǒng)計數(shù)據(jù),一般用于檢驗本機
    的頭像 發(fā)表于 02-10 10:59 ?4346次閱讀
    <b class='flag-5'>netstat</b>查看端口占用

    Netstat命令實用技巧介紹

    在調(diào)試網(wǎng)絡程序或者定位網(wǎng)絡相關問題時,有一個命令不得不知,它就是netstat
    的頭像 發(fā)表于 08-09 17:32 ?3103次閱讀

    電磁流量計常見故障排查方法

    電磁流量計在現(xiàn)場故障如何排查?以下幾點是我公司多年使用過程中總結的經(jīng)驗:
    發(fā)表于 11-29 15:29 ?1462次閱讀

    探究Go語言如何實現(xiàn)簡易版netstat命令

    netstat 使用 go 語言實現(xiàn)是什么操作?本文從 netstat 原理出發(fā)詳細解讀了這一實踐。 netstat 工作原理 netstat 命令
    的頭像 發(fā)表于 07-27 10:35 ?1715次閱讀
    探究Go語言如何實現(xiàn)簡易版<b class='flag-5'>netstat</b><b class='flag-5'>命令</b>

    Netstat 命令實例介紹

    Netstat 命令用于顯示各種網(wǎng)絡相關信息,如網(wǎng)絡連接,路由表,接口狀態(tài) (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
    的頭像 發(fā)表于 09-19 16:18 ?790次閱讀

    常用linux網(wǎng)絡排查命令

    今天浩道跟大家分享linux網(wǎng)絡運維中常見的命令,掌握好這些命令,在排查故障時將會游刃有余!
    發(fā)表于 06-25 10:49 ?739次閱讀

    后臺開發(fā)中netstat命令使用方法

    后臺開發(fā),netstat命令總是繞不過,不僅工作中經(jīng)常用過,面試也是考的多。netstat命令,對應的選項比較多,功能比較強大。netstat
    的頭像 發(fā)表于 10-08 16:21 ?525次閱讀

    PLC故障排查步驟

    故障排查對于PLC非常重要,下面是一般的PLC故障排查步驟: (1)收集信息:首先,收集有關故障的詳細信息,包括
    的頭像 發(fā)表于 11-17 09:01 ?1624次閱讀

    電纜故障排查技術案例筆記

    電纜故障排查技術案例筆記
    的頭像 發(fā)表于 05-20 17:03 ?418次閱讀
    電纜<b class='flag-5'>故障</b><b class='flag-5'>排查</b>技術案例筆記