“netstat -s”的替代方案

“netstat -s”的替代方案

netstat -s打印出许多非常详细的协议统计信息,例如收到的 TCP 重置消息数或发送的 ICMP“回显请求”消息数或由于丢失路由而丢弃的数据包数。

如今,Linuxnetstat已被视为已弃用,那么还有替代方案吗?

ss -s与 提供的统计数据相比,提供的统计数据很肤浅netstat

答案1

如今,Netstat 已被视为已弃用,而网络工具中包含的其他程序(例如 arp、ifconfig、iptunnel、nameif、netstat以及 Route)也已被视为已弃用。

其中几个实用程序提供的功能已在新版本中得到重现和改进ip路由2套件,主要是通过使用其新ip命令。

已弃用的命令及其替换示例:

  • arpip n( ip neighbor)
  • ifconfigip a( ip addr), ip link, ip -s( ip -stats)
  • iptunnelip tunnel
  • iwconfigiw
  • nameifip link,ifrename
  • netstatss,  ip 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
ss -u      # get UDP connections not in listen mode
ss -x      # get Unix domain socket connections
ss -at     # get all TCP connections (both listening and non-listening)
ss -au     # get all UDP connections
ss -tn     # TCP without service name resolution
ss -ltn    # listening TCP without service name resolution
ss -ltp    # listening TCP with PID and name
ss -s      # prints statistics
ss -tn -o  # TCP connections, show keepalive timer
ss -lt4    # IPv4 (TCP) connections 

请参阅注释中netstat(8) 联机帮助页:

笔记

    这个程序大部分已经过时了。替代netstatss。替代netstat -rip route。替代netstat -iip -s link。替代netstat -gip maddr

答案2

netstat确实已被许多发行版弃用,尽管它实际上是“net-tools”包(包括ifconfigroutearp)的大部分已被弃用,取而代之的是“iproute2”包。ip路由2进化了以及最新的 Linux 网络功能,而传统公用事业则没有。

您想要的 iproute2 等效项是鲜为人知的nstat,它提供了netstat -s计数器,尽管形式略有不同:

  • 使用来自的原始计数器名称/proc,每个名称都以其类为前缀(“Udp”、“Tcp”、“TcpExt”等)

  • netstat 的长(可能是本地化的)描述不可用

  • 默认情况下省略零值计数器

  • 使用一致的列式输出以及第一列和第二列中的名称和值

  • 如果您已启动后台 nstat(守护进程模式),第三列显示可配置时间窗口内的平均值-d,如果没有启动则为 0.0

    例如,nstat打印“UdpInDatagrams NNN”而不是“Udp:InDatagrams”,也不是“Udp:NNN 数据包收到”的详细 netstat 版本。

nstat还假设您想要增量而不是绝对数字,因此最接近的等效项netstat -s/sbin/nstat -asz选项-a使用绝对计数器,-s不保留历史文件,-z不省略零值计数器。

ss接管 的“套接字”部分netstat,但不是您发现的完整功能。 (ss实际上比在许多情况下更好netstat,两个具体的功能是使用过滤表达式的能力以及使用tcp_diaginet_diagLinux 内核模块比 via 更直接地访问内核套接字数据的可选功能/proc。)

如果您需要确认描述性名称的映射,net-tools 源是最终的参考:http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html

道格·维塔莱 (Doug Vitale) 提供了有用的指南用于查找旧命令的 iproute2 等效项(它未维护并且稍微不完整,它省略了对nstatiproute2 包的一部分的任何引用至少从 2004 年开始内核 2.6.x 时间)。

网络工具继续生活但是,您应该能够找到适合您的发行版的软件包(或自己编译它)。

答案3

您可能想检查以下内容/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

相关内容