"netstat -s" का विकल्प


23

netstat -s एक बहुत ही विस्तृत प्रोटोकॉल आँकड़े प्रिंट करता है जैसे कि एक लापता मार्ग के कारण टीसीपी रीसेट संदेशों की संख्या या ICMP "इको रिक्वेस्ट" संदेश भेजे गए या भेजे गए पैकेटों की संख्या।

जब netstatआजकल लिनक्स में पदावनत माना जाता है, तो क्या कोई विकल्प है?

उपलब्ध कराए गए आंकड़ों की ss -sतुलना में उपलब्ध कराए गए आँकड़े सतही हैं netstat


tcpdump उसी जरूरत को पूरा करने के लिए लगता है
थॉमस डिकी

4
netstatपदावनत किया गया है। का उपयोग करें ss
mikeserv

@ThomasDickey tcpdumpलाइव ट्रैफ़िक को कैप्चर करने की अनुमति देता है, लेकिन आंकड़ों को एक तरह से netstat -sशो में संग्रहीत नहीं करता है ।
मार्टिन

1
प्लेटफ़ॉर्म निर्दिष्ट करना संभवतः उपयोगी होगा। आप sysctlआउटपुट या विभिन्न /proc/net/*नोड्स की सामग्री की जांच करना चाह सकते हैं ।
जर्कन

जवाबों:


16

netstatवास्तव में कई वितरणों द्वारा हटा दिया गया है, हालांकि यह वास्तव में "नेट-टूल्स" पैकेज (सहित ifconfig, routeऔर arp) है जो "iproute2" पैकेज के पक्ष में पदावनत किया गया है। iproute2 नवीनतम लिनक्स नेटवर्किंग सुविधाओं के साथ विकसित हुआ है , और पारंपरिक उपयोगिताओं ने नहीं किया है।

Iproute2 जो आप चाहते हैं, वह थोड़ा ज्ञात है nstat, यह netstat -sकाउंटरों को प्रदान करता है , यद्यपि कुछ अलग रूप में:

  • कच्चे काउंटर नामों /procका उपयोग किया जाता है, प्रत्येक अपनी कक्षा के साथ उपसर्ग करता है ("Udp", "Tcp", "TcpExt" आदि)
  • नेटस्टैट के लंबे (और संभवतः स्थानीयकृत) विवरण उपलब्ध नहीं हैं
  • शून्य-मूल्य काउंटर डिफ़ॉल्ट रूप से छोड़े गए
  • पहले और दूसरे कॉलम में नाम और मूल्य के साथ लगातार स्तंभ आउटपुट का उपयोग करना
  • यदि आप एक पृष्ठभूमि नेस्टैट ( -dडेमन मोड) शुरू कर चुके हैं तो तीसरा कॉलम औसत समय विंडो पर औसत दिखाता है , या नहीं तो ०.०

    उदाहरण के लिए nstat"UdpInDatagrams NNN" प्रिंट नहीं "Udp: InDatagrams", और "Udp: NNN पैकेट प्राप्त" का वर्बोज़ नेटस्टैट संस्करण नहीं।

nstatयह भी मानता है कि आप पूर्ण संख्याओं के बजाय वृद्धिशील चाहते हैं, इसलिए निकटतम समतुल्य netstat -sहै /sbin/nstat -aszजहाँ विकल्प -aपूर्ण काउंटरों का उपयोग करते हैं , -sइतिहास फ़ाइल को न रखें, -zशून्य-मूल्य काउंटरों को छोड़ें नहीं।

ssके "सॉकेट" भागों को संभाल लेता है netstat, लेकिन इसका पूरा कार्य नहीं करता है जैसा कि आपको पता चला है। ( ssवास्तव netstatमें कई मामलों में बेहतर है , दो विशिष्ट लोग फिल्टर एक्सप्रेशन का उपयोग करने की क्षमता tcp_diagऔर inet_diagलिनक्स कर्नेल मॉड्यूल को कर्नेल सॉकेट डेटा तक सीधे पहुंच के माध्यम से उपयोग करने की वैकल्पिक क्षमता है /proc।)

क्या आपको वर्णनात्मक नामों के लिए मानचित्रण की पुष्टि करने की आवश्यकता है, नेट-टूल स्रोत निश्चित संदर्भ है: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html

डग विटले पुराने आदेशों के iproute2 समकक्षों को खोजने के लिए एक उपयोगी मार्गदर्शिका प्रदान करता है (यह अप्रमाणित और थोड़ा अधूरा है, यह किसी भी संदर्भ को छोड़ देता है, nstatजो कम से कम 2004 कर्नेल 2.6.x समय से iproute2 पैकेज का हिस्सा रहा है )।

नेट उपकरणों पर रहता है तथापि, और आप (यह अपने आप संकलन या) अपने वितरण के लिए एक पैकेज को खोजने के लिए सक्षम होना चाहिए।


23

NETSTAT को आजकल और अन्य कार्यक्रमों में शामिल माना जाता है, जिसमें नेट-टूल जैसे कि arp, ifconfig, iptunnel, nameif netstatऔर मार्ग शामिल हैं।

इनमें से कई उपयोगिताओं द्वारा प्रदान की गई कार्यक्षमता को नए iproute2 सूट में फिर से बनाया और बेहतर बनाया गया है , मुख्य रूप से इसकी नई ipकमांड का उपयोग करके ।

पदावनत आदेश और उनके प्रतिस्थापन के उदाहरण:

arp => ip n (आईपी पड़ोसी)

ifconfig => ip a (ip addr), ip लिंक, ip -s (ip -stats)

iptunnel => ip सुरंग

iwconfig => iw

nameif => ip लिंक, ifrename

netstat => ss, ip मार्ग (netstat-r के लिए), ip -s लिंक (netstat -i के लिए), ip maddr (netstat-g के लिए)

netstatआदेश में जानकारी इकट्ठा करने के लिए विभिन्न / proc फ़ाइलें पढ़ता है। हालाँकि, यह दृष्टिकोण कमजोर पड़ता है जब प्रदर्शित करने के लिए बहुत सारे कनेक्शन होते हैं। यह इसे धीमा बनाता है। ssआदेश गिरी अंतरिक्ष से सीधे इसकी जानकारी हो जाता है। ssआदेशों के साथ उपयोग किए जाने वाले विकल्प नेटस्टैट के समान हैं जो इसे एक आसान प्रतिस्थापन बनाते हैं।

द्वारा प्रदान की सांख्यिकी ssहैं सतही लेकिन यह माना जाता है बेहतर विकल्प के लिएnetstat

उदाहरण :

सभी कनेक्शन प्राप्त करें: ss | less

ss -t सुनने मोड में नहीं tcp कनेक्शन प्राप्त करें (सर्वर प्रोग्राम)

ss -u सुनो मोड में नहीं udp कनेक्शन प्राप्त करें

ss -x यूनिक्स सॉकेट पाइप कनेक्शन प्राप्त करें

ss -ta सभी टीसीपी कनेक्शन प्राप्त करें

ss -au सभी udp कनेक्शन प्राप्त करें

ss -nt होस्ट नाम के बिना सभी tcp

ss -ltn मेजबान संकल्प के बिना सुनने tcp

ss -ltp PID और नाम के साथ tcp सुनना

ss -s प्रिंट्स स्टैटिस्टिक

ss -tn -o डोमेन होस्ट के साथ tcp कनेक्शन और रखवाले टाइमर दिखाएँ

ss -tl4 ip4 कनेक्शन


4
यह सवाल का जवाब नहीं देता है, ओपी सही ढंग से इंगित ss -s करता है जो प्रदान करने वाले डेटा प्रदान नहींnetstat -s करता है। इसमें गलत जानकारी भी शामिल है: /proc इसके लिए कर्नेल इंटरफ़ेस है और यह ठीक इसी तरह से ssबहुत अधिक डेटा प्राप्त करता है strace -e trace=file,read /sbin/ss -s:।
mr.spuratic

1
ओपी ने कहा कि पूरी तरह से "एसएस सतही" नहीं हैं, लेकिन " ss -sनेटस्टैट द्वारा प्रदान किए गए लोगों की तुलना में सतही हैं" (मतलब तुलना netstat -s)। और यह वास्तव में सच्चाई है: उदाहरण के लिए, ss -s से आप TCP रिट्रांसमिशन के बारे में कुछ नहीं जान सकते हैं।
केनिची

4

आप निम्न सामग्री की जांच करना चाहते हैं /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

सबसे अनुकूल प्रारूप नहीं है, लेकिन आपको विचार मिलता है।

यह निश्चित नहीं है कि इसमें वास्तव में वे विशिष्ट आइटम हैं जिनकी आप तलाश कर रहे हैं, लेकिन वे कहीं और उपलब्ध हो सकते हैं /proc/net


5
आउटपुट को प्रारूपित करने के लिए यहां (सिंगल लॉन्ग लाइन) स्क्रिप्ट है: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/snmpशामिल सबसे डेटा की और /proc/net/netstatबाकी में शामिल है। अफसोस की बात है कि सभी नाम मैपिंग को निर्धारित करने के लिए आपको नेट-टूल statistics.cस्रोत पढ़ना होगा , हालांकि अधिकांश स्पष्ट हैं।
mr.spuratic
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.