当前位置: 首页 > Linux

如何在Linux上显示网络接口丢包统计

时间:2023-04-06 11:19:29 Linux

在Linux系统上,我们可以通过[ip]、[netstat]或[ethtool]命令显示网络接口丢包统计。接下来我们看看如何使用每个命令。使用netstat按接口显示包其实[netstat]命令已经过时了,可以用[ip]和[ss]命令代替。但是[netstat]在一些老的Linux发行版上还是有的,所以当ip/ss不可用时,我们可以使用netstat,它的语法如下netstat-inetstat--interfaces例如~$netstat-iKernelInterfacetableIfaceMTUMetRX-OKRX-ERRRX-DRPRX-OVRTX-OKTX-ERRTX-DRPTX-OVRFlgdocker015000188180000151852000BMRUeth015000472368000375351000BMRUlo65503600051687000LRUvethc8f46ea1500013698400079587000BMRU如果想显示每个协议的汇总统计,可以执行netstat-snetstat--statistics如$netstat-sIp:527622totalpacketsreceived19地址无效329762已转发0个传入数据包已丢弃191137个传入数据包已交付568337个请求已发送Icmp:收到8条ICMP消息8输入ICMP消息失败。ICMP输入直方图:目的地不可到达:7ICMP1在5中转:ssagessent0ICMPmessagesfailedICMPoutputhistogram:destinationunreachable:5IcmpMsg:InType3:7InType11:1OutType3:5Tcp:2509个主动连接打开26个被动连接打开748次连接尝试失败14个连接重置已收到4个连接已建立182968个段已接收241886个段已发送在72个段中重传了279个收到的坏段。1844重置发送InCsumErrors:279Udp:收到8067个数据包5个数据包收到未知端口。0packetreceiveerrors11440packetssentcp--onlytcpinformationnetstat--stats-t显示udp信息netstat-s-unetstat--statistics--udp使用ip命令显示网络接口包信息如果要显示统计信息所有接口的信息,命令如下ip-slink如果要显示某个接口,指定接口名称ip-slinkshow{interface}例如$ip-slinkshoweth02:eth0:mtu1500qdiscpfifo_fast状态UP模式DEFAULT组默认qlen1000link/ether00:16:3e:02:c8:e3brdff:ff:ff:ff:ff:ffRX:bytespacketserrorsdroppedoverrunmcast3777869434739450000TX:bytespacketserrorsdroppedcarriercollsns2660245873774670000,TX表示发送的数据包ethtool命令用来查询指定网口的信息。您可以使用-S或--statistics选项来显示统计信息。Thesyntaxisasfollowsethtool-S{device}Forexample,?ethtool-Swlan1NICstatistics:rx_packets:487703rx_bytes:207474712rx_duplicates:180rx_fragments:487682rx_dropped:19952tx_packets:141579tx_bytes:34804215tx_filtered:0tx_retry_failed:0tx_retries:19541sta_state:4txrate:400000000rxrate:360000000signal:201channel:0noise:18446744073709551615ch_time:18446744073709551615ch_time_busy:18446744073709551615ch_time_ext_busy:18446744073709551615ch_time_rx:18446744073709551615ch_time_tx:18446744073709551615Youcanalsodirectlyusethecatorcolumncommandtoquery/proc/net/dev文件,例如?column-t/proc/net/devInter-|接收|传输face|bytespacketserrspressdropfifodframecom多播|字节数据包错误丢弃fifocolls载波压缩lo:23035275712017220000002303527571201722000000eth0:0000000000000000wlan1:134627061478066500002829836581154942000000br-13cb4d22d1c8:0000000000000000br-44561b4ee062:00000000000000br0-70b0dad49865:00000000000000000docker:682483044848000000133304965471040000000VETHEB8B528:236007013321000000008143168000000081431680000000000000000Vetha4dc6663:461283246400000029815582302000000补充:如何诊断数据包丢弃的原因如果发现网络数据已经被丢弃了,想找找原因,这里有一个工具dropwath首先,您需要自己编译安装该工具。以下示例在Ubuntu上编译和安装:sudoapt-getinstalllibpcap-devlibnl-3-devlibnl-genl-3-devbinutils-devlibreadline6-devautoconflibtoolpkg-configbuild-essentialgitclonehttps://github。com/nhorman/dropwatch.gitcddropwatch./autogen.sh./configuremakemakeinstall然后你可以运行dropwatch进行监控只捕获这么多警报数据包alertmode-将模式设置为“summary”或“packet”trunc-将数据包截断到这个长度。仅当“alertmode”设置为“packet”时适用queue-在内核中排队最多这么多数据包。仅当“alertmode”设置为“packet”时适用false>-监控软件丢弃硬件<真|false>-监控硬件dropstart-开始捕获stop-停止捕获show-显示现有配置stats-显示统计数据dropwatch>也可以使用[tcpdump]进行网络捕获,然后使用[wireshark]进行分析