“netstat -s” alternatif


23

netstat -s Alınan TCP sıfırlama mesajlarının sayısı veya gönderilen ICMP "eko isteği" mesajlarının sayısı veya eksik bir rota nedeniyle bırakılan paketlerin sayısı gibi birçok ayrıntılı protokol istatistiklerini yazdırır.

Linux netstatbugünlerde kullanımdan kaldırıldığı kabul edildiğinde, bir alternatif var mı?

Tarafından sağlanan istatistikler, sağlananlara göre ss -syüzeyseldir netstat.


tcpdump aynı ihtiyacı dolduruyor gibi görünüyor
Thomas Dickey

4
netstatkullanımdan kaldırıldı. Kullanın ss.
mikeserv

@ThomasDickey tcpdumpbir kişinin canlı trafiği yakalamasına izin verir, ancak istatistikleri bir şekilde netstat -sgöstermez.
Martin

1
Platformu belirlemek muhtemelen faydalı olacaktır. sysctlÇıktıyı veya çeşitli /proc/net/*düğümlerin içeriğini incelemek isteyebilirsiniz .
Jcaron,

Yanıtlar:


16

netstatGerçekten çok "net-araçları" paketi var (dahil olsa aslında birçok dağılımları tarafından itiraz edildi ifconfig, routeve arp"iproute2" paket lehine önerilmemektedir edildiğini). iproute2 , en son Linux ağ özellikleri ile birlikte gelişti ve geleneksel kamu kurumları olmadı.

İstediğiniz iproute2 eşdeğeri az bilinen bir durumdur nstat, bu sayede netstat -sbiraz farklı bir biçimde de olsa sayıcılar bulunur:

  • Ham sayaç adları /proc, her biri kendi sınıfına önceden eklenmiş ("Udp", "Tcp", "TcpExt" vb.) kullanılır.
  • netstat'ın uzun (ve muhtemelen yerelleştirilmiş) tanımları mevcut değil
  • sıfır değer sayaçları varsayılan olarak ihmal edilir
  • birinci ve ikinci sütunlarda isim ve değer ile tutarlı sütunlu çıktının kullanılması
  • üçüncü sütun bir arka plan nstat ( -darka plan modu) başlattıysanız, yapılandırılabilir bir zaman penceresinin ortalamasını veya değilse

    Örneğin, nstat"Udp: InDatagrams" değil "UdpInDatagrams NNN" ve "Udp: NNN paketlerinin alındığı" ayrıntılı netstat sürümünü yazdırmaz.

nstatAyrıca yakın eşdeğer böylece üzere, artan ziyade mutlak sayılar daha istiyorum varsayar netstat -solduğu /sbin/nstat -aszseçenekler nerede -a, kullanım mutlak sayaçlar -s, tarih dosyasını tutmuyorum -zomit sıfır değerli sayaçlarını yok.

ss"soket" kısımlarını devralır netstat, fakat sizin bildiğiniz gibi tam işlevini yerine getirmez. ( ssaslında netstatbirçok durumdakinden daha iyidir , iki özel olanı süzgeç ifadelerini kullanma yeteneği ve çekirdek soket verilerine doğrudan yönlendirmeden erişmek için isteğe bağlı tcp_diagve inet_diagLinux çekirdek modüllerini kullanma yeteneğidir /proc.)

Açıklayıcı adlar için eşlemeyi onaylamanız gerekirse, net-tools kaynağı kesin referanstır: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html

Doug Vitale , eski komutların iproute2 eşdeğerlerini bulmak için yararlı bir rehber sağlar (bu, kullanılmayan ve hafifçe eksik nstatolan, iproute2 paketinin bir parçası olan en az 2004 çekirdeği 2.6.x zamanından beri olan herhangi bir referansı çıkarmaz).

net-tools bununla birlikte yaşar ve dağıtımınız için bir paket bulabilmeniz (ya da kendiniz derlemeniz) gerekir.


23

NETSTAT bugünlerde ve arp, ifconfig, iptunnel, nameif netstatve route gibi net-araçlarına dahil olan programlarda kullanımdan kaldırılmaktadır .

Bu yardımcı programların birçoğunun sağladığı işlevsellik , öncelikle yeni komutu kullanılarak yeni iproute2 paketinde çoğaltılmış ve geliştirilmiştir ip.

Kullanımdan kaldırılmış komutlara ve bunların değiştirilmesine ilişkin örnekler:

arp => ip n (ip komşusu)

ifconfig => ip a (ip adresi), ip bağlantısı, ip -s (ip noktaları)

iptunnel => ip tüneli

iwconfig => iw

nameif => ip link, ifrename

netstat => ss, ip yolu (netstat-r için), ip-s bağlantısı (netstat-i için), ip maddr (netstat-g için)

netstatKomut bilgi toplamak için çeşitli / proc dosyalarını okur. Ancak, gösterilecek çok sayıda bağlantı olduğunda bu yaklaşım zayıflar. Bu yavaşlatır. ssKomut çekirdek uzaydan doğrudan kendi bilgi alır. ssKomutlarla kullanılan seçenekler , netstat'a çok benzer, bu da onu kolayca değiştirir.

Tarafından sağlanan istatistikler ssvardır yüzeysel ama kabul edilir daha iyi bir alternatif içinnetstat

Örnekler:

tüm bağlantıları al: ss | less

ss -t tcp bağlantılarını dinleme modunda değil (sunucu programları) al

ss -u udp bağlantılarını dinleme modunda değil

ss -x unix soket boru bağlantılarının elde edilmesi

ss -ta tüm tcp bağlantılarını al

ss -au tüm udp bağlantılarını al

ss -nt ana bilgisayar adı olmadan tüm tcp

ss -ltn ana bilgisayar çözünürlüğü olmadan tcp dinleme

ss -ltp PID ve isim ile tcp dinleme

ss -s istatistik yazdırır

ss -tn -o domain host ile tcp bağlantısı ve kalıcı zamanlayıcı göster

ss -tl4 ip4 bağlantıları


4
Bu, soruyu cevaplamıyor, OP ss -s sağlayan verileri sağlamadığını doğru bir şekilde gösteriyor netstat -s. Bu aynı zamanda yanlış bilgi içerir: /proc olduğu için bu çekirdek arayüzü ve tam olarak nasıl ssçok veri elde eder: strace -e trace=file,read /sbin/ss -s.
mr.spuratic

1
OP, tamamen "yüzeysel olmadığını" değil, " ss -snetstat tarafından sağlananlarla karşılaştırıldığında yüzeysel olduğunu" söyledi (kıyaslama anlamına gelir netstat -s). Ve bu gerçekten doğrudur: örneğin, ss-s'den TCP Aktarımları hakkında hiçbir şey bilmiyorsunuz.
kenichi

4

İçeriğini kontrol etmek isteyebilirsiniz /proc/net/netstat:

TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned OutOfWindowIcmps LockDroppedIcmps ArpFilter TW TWRecycled TWKilled PAWSPassive PAWSActive PAWSEstab DelayedACKs DelayedACKLocked DelayedACKLost ListenOverflows ListenDrops TCPPrequeued TCPDirectCopyFromBacklog TCPDirectCopyFromPrequeue TCPPrequeueDropped TCPHPHits TCPHPHitsToUser TCPPureAcks TCPHPAcks TCPRenoRecovery TCPSackRecovery TCPSACKReneging TCPFACKReorder TCPSACKReorder TCPRenoReorder TCPTSReorder TCPFullUndo TCPPartialUndo TCPDSACKUndo TCPLossUndo TCPLostRetransmit TCPRenoFailures TCPSackFailures TCPLossFailures TCPFastRetrans TCPForwardRetrans TCPSlowStartRetrans TCPTimeouts TCPLossProbes TCPLossProbeRecovery TCPRenoRecoveryFail TCPSackRecoveryFail TCPSchedulerFailed TCPRcvCollapsed TCPDSACKOldSent TCPDSACKOfoSent TCPDSACKRecv TCPDSACKOfoRecv TCPAbortOnData TCPAbortOnClose TCPAbortOnMemory TCPAbortOnTimeout TCPAbortOnLinger TCPAbortFailed TCPMemoryPressures TCPSACKDiscard TCPDSACKIgnoredOld TCPDSACKIgnoredNoUndo TCPSpuriousRTOs TCPMD5NotFound TCPMD5Unexpected TCPSackShifted TCPSackMerged TCPSackShiftFallback TCPBacklogDrop TCPMinTTLDrop TCPDeferAcceptDrop IPReversePathFilter TCPTimeWaitOverflow TCPReqQFullDoCookies TCPReqQFullDrop TCPRetransFail TCPRcvCoalesce TCPOFOQueue TCPOFODrop TCPOFOMerge TCPChallengeACK TCPSYNChallenge TCPFastOpenActive TCPFastOpenPassive TCPFastOpenPassiveFail TCPFastOpenListenOverflow TCPFastOpenCookieReqd TCPSpuriousRtxHostQueues BusyPollRxPackets
TcpExt: 0 0 3310 41566 0 0 0 8 0 0 6402271 0 0 0 0 55 4280514 134510 38423 0 611 15354484 20413302 794718685 0 14094957 6423168 25905597 17269587 4 23681 29 50 20 0 25 43 25 19211 1800 131 0 93 93 25430 4864 18099 1199566 2300620 1280201 0 279 0 0 38507 607 2359841 19 98943 1769 0 5993 0 0 0 3 65 1310588 380 0 0 0 0 613504 190 0 12056356 0 0 0 0 3 735740 43633 0 606 3933 193 0 24 0 0 0 14 0
IpExt: InNoRoutes InTruncatedPkts InMcastPkts OutMcastPkts InBcastPkts OutBcastPkts InOctets OutOctets InMcastOctets OutMcastOctets InBcastOctets OutBcastOctets InCsumErrors InNoECTPkts InECT1Pkts InECT0Pkts InCEPkts
IpExt: 0 0 50492 0 18482301 0 68850196397 26546692767 3029352 0 2305454225 0 0 457718114 36 19480 2472

En uygun format değil, ama fikir edindiniz.

Aslında aradığınız belirli öğeleri içerdiğinden emin değilim, ancak başka yerlerde de bulunabilirler /proc/net.


5
İşte çıktıyı biçimlendirmek için bir (tek uzun çizgi) komut dosyası:awk '{for(i=1;i<=NF;i++)title[i] = $i; getline; print title[1]; for(i=2;i<=NF;i++)printf " %s: %s\n", title[i], $i }' /proc/net/netstat
meuh

1
/proc/net/snmpiçeren en verinin ve /proc/net/netstatkalanını içerir. Maalesef , çoğu isim açık olmasına rağmen, tüm isim eşlemelerini belirlemek için net-tools statistics.ckaynağını okumanız gerekecek .
mr.spuratic
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.