web-dev-qa-db-ja.com

「netstat -s」の代わり

netstat -s TCPリセットメッセージの受信数、または送信されたICMP "エコー要求"メッセージの数、またはルートがないためにパケットがドロップされました。

Linuxでnetstatが現在非推奨と見なされている場合、代替手段はありますか?

ss -sが提供する統計は、netstatが提供する統計と比べると表面的なものです。

26
Martin

netstatは実際には多くのディストリビューションで非推奨になっていますが、実際には「net-tools」パッケージ(ifconfigrouteおよびarpを含む)の大部分です「iproute2」パッケージのために廃止されました。 iproute2 は進化しました 最新のLinuxネットワーキング機能とともに 、そして従来のユーティリティは進化していません。

必要なiproute2に相当するものは、ほとんど知られていないnstatです。これは、少し異なる形式ではありますが、netstat -sカウンターを提供します。

  • /procの未加工のカウンター名が使用され、それぞれにそのクラス( "Udp"、 "Tcp"、 "TcpExt"など)が前に付けられます
  • netstatの長い(おそらくローカライズされた)説明は利用できません
  • デフォルトで省略されているゼロ値カウンター
  • 最初の列と2番目の列の名前と値で一貫性のある列出力を使用する
  • 3番目の列は、バックグラウンドnstat(-dデーモンモード)を開始した場合は、構成可能な時間ウィンドウの平均を示し、そうでない場合は0.0を示します。

    例えばnstatは、「Udp:InDatagrams」ではなく「UdpInDatagrams NNN」を出力し、「Udp:受信したNNNパケット」の詳細なnetstatバージョンを出力しません。

nstatは、絶対数ではなく増分が必要であることも想定しているため、netstat -sに最も近いものは/sbin/nstat -aszです。ここで、オプションは-a絶対カウンターを使用します-s履歴ファイルを保持しない、-zゼロ値カウンターを省略しない。

ssnetstatの「ソケット」部分を引き継ぎますが、ご存じのように完全な機能ではありません。 (ssは実際には多くの場合netstatより優れています。2つの具体的なものは、フィルター式を使用する機能と、tcp_diagおよびinet_diag Linuxを使用するオプション機能です。カーネルモジュールは、/proc経由よりも直接カーネルソケットデータにアクセスします。)

説明的な名前のマ​​ッピングを確認する必要がある場合は、net-toolsソースが最も確実なリファレンスです。 http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html

Doug Vitaleは、古いコマンドと同等のiproute2を見つけるための 便利なガイド を提供します(メンテナンスされておらず、少し不完全です。iproute2パッケージの一部であるnstatへの参照が省略されています- 少なくとも2004年以降 カーネル2.6.x時間)。

net-tools lives on ただし、ディストリビューション用のパッケージを見つけられる(または自分でコンパイルできる)はずです。

19
mr.spuratic

NETSTATは現在では廃止されていると見なされており、arp、ifconfig、iptunnel、nameif、netstat、routeなどのnet-toolsに含まれる他のプログラムも含まれています。

これらのユーティリティのいくつかによって提供される機能は、主に新しいipコマンドを使用することにより、新しいiproute2スイートで再現および改善されました。

非推奨のコマンドとその代替の例:

  • arpip nip neighbor
  • ifconfigip aip addr)、ip linkip -sip -stats
  • iptunnelip tunnel
  • iwconfigiw
  • nameifip link、ifrename
  • netstatssip route (ために netstat -r)、ip -s link (ために netstat -i)、ip maddr (ために netstat -g

netstatコマンドは、さまざまな/ procファイルを読み取り、情報を収集します。ただし、表示する接続が多い場合、このアプローチは弱くなります。これは遅くなります。 ssコマンドは、カーネル空間から直接情報を取得します。 ssコマンドで使用されるオプションはnetstatとよく似ており、簡単に置き換えることができます。

ssによって提供される統計は表面的ですが、それはより良い代替手段からnetstatと見なされます

ss | less  # get all connections
ss -t      # get tcp connections not in listen mode (server programs)
ss -u      # get udp connections not in listen mode
ss -x      # get unix socket pipe connections
ss -ta     # get all tcp connections
ss -au     # get all udp connections
ss -nt     # all tcp without Host name
ss -ltn    # listening tcp without Host resolution
ss -ltp    # listening tcp with PID and name
ss -s      # prints statstics
ss -tn -o  # tcp connection with domain Host and show keepalive timer
ss -tl4    # ip4 connections 
27
GAD3R

/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の他の場所で入手できる場合があります。

4
jcaron