AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 533513
Accepted
justinas
justinas
Asked: 2013-08-25 11:28:06 +0800 CST2013-08-25 11:28:06 +0800 CST 2013-08-25 11:28:06 +0800 CST

如何在没有 ifconfig 的情况下获取 TX/RX 字节?

  • 772

由于ifconfig在主要的 Linux 发行版中显然已弃用,我想我会了解一些关于ip应该使用的工具而不是ifconfig.

在这里我遇到了一个问题:当它自己运行时,ifconfig除了其他信息之外,还会显示每个接口上接收/传输的字节数。我找不到从ip. 这个工具没有这个功能吗?我可以使用哪些其他内置工具来获取这些统计信息?

linux
  • 5 5 个回答
  • 102358 Views

5 个回答

  • Voted
  1. Zoredache
    2013-08-25T13:00:20+08:002013-08-25T13:00:20+08:00

    作为 iproute2 软件包一部分的ip命令是新工具。该link子命令用于管理设备/接口。

    如果您可以使用获取接口的统计信息ip -s link

    root:~# ip -s link
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        RX: bytes  packets  errors  dropped overrun mcast
        50679705   529967   0       0       0       0
        TX: bytes  packets  errors  dropped carrier collsns
        50679705   529967   0       0       0       0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:1d:7d:aa:e3:4e brd ff:ff:ff:ff:ff:ff
        RX: bytes  packets  errors  dropped overrun mcast
        187663757  308710386 0       0       0       0
        TX: bytes  packets  errors  dropped carrier collsns
        4051284587 532435117 0       0       0       0
    
    • 75
  2. Best Answer
    dsmsk80
    2013-08-25T12:57:52+08:002013-08-25T12:57:52+08:00

    另一种选择是使用 /proc 文件系统。/proc/net/dev文件包含有关已配置网络接口的统计信息。每条线路专用于一个网络接口,它包含接收和发送的统计信息。统计信息包括接收/发送字节总数、数据包、丢弃、错误等指标。

    cat /proc/net/dev
    
        Inter-|   Receive                                                |  Transmit
         face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    
        lo:    29846937   129576     0    0    0     0          0       0 29846937   129576     0    0    0     0       0          0
     wlan0:    9467393340 8027251    0    0    0     0          0       0 2559312961 5896509    0    0    0     0       0          0
    

    或者您可以尝试netstat命令,它可以显示所有网络接口和相关统计信息:

    netstat -i
    
    Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    lo         65536   0   130435      0      0      0   130435      0      0      0 LRU
    wlan0       1492   0  8028018      0      0      0  5897361      0      0      0 BMRU
    
    • 69
  3. ALex_hha
    2013-08-25T12:11:10+08:002013-08-25T12:11:10+08:00

    您可以通过 proc 获取所有必要的信息

    # cat /sys/class/net/eth0/statistics/rx_bytes
    # cat /sys/class/net/eth0/statistics/rx_packets
    
    # cat /sys/class/net/eth0/statistics/tx_packets
    # cat /sys/class/net/eth0/statistics/tx_bytes
    

    您也可以使用 iptables 并解析输出。

    对于收到的数据包

    # iptables -L INPUT -n -v
    

    对于传输的数据包

    # iptables -L OUTPUT -n -v 
    

    如果服务器是网关,那么你还应该解析FORWARD链

    • 58
  4. Dinuka Salwathura
    2017-03-26T09:06:12+08:002017-03-26T09:06:12+08:00

    您可以直接读取文件/sys/class/net/wlp3s0/statistics/rx_bytes并获取 rx_byes 而无需调用其他命令,vnstat也很好。据我所知,Linux 将所有信息存储在文件中,因此最好找到这些文件并获取信息。找到相关文件是一项挑战。

    • 1
  5. Dave
    2022-05-03T08:23:32+08:002022-05-03T08:23:32+08:00

    您还可以使用 ethtool:

    ethtool -S eth0
    

    ethtool 的好处是您可以看到每个 rx / tx 队列以及它们是如何平衡的。

    我发现watch使用所有这些工具来更新屏幕是一个很棒的工具。然而,这些工具中的大多数将流量显示为每秒字节数或数据包。我发现很难将字节转换为 gigs 或 pps 到每秒数百万个数据包。只是提示,请查看 Cloudflare 的mmwatch工具。它和手表一样,但会自动进行计算并像手表一样将输出显示到屏幕上。(示例:因此您将看到1.2m/s每秒 120 万个数据包)

    https://github.com/cloudflare/cloudflare-blog/blob/master/2017-06-29-ssdp/mmwatch

    另外,ethtool -S eth0给出了很多输出,我用以下方式用 mmwatch 显示接收队列和丢弃:

    mmwatch "ethtool -S eth0 | grep 'rx-\|discard'"
    
    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve