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


61

由于ifconfig显然已经在主要的Linux发行版中弃用了,所以我认为我ip应该学习一些有关应该使用代替的工具的知识ifconfig

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


您也可以退房netstatlinux.die.net/man/8/netstat
SunSparc,

Answers:


53

另一个选择是使用/ proc文件系统。在的/ proc /净/ 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

/proc/net/dev具有IMO接受的所有解决方案中最干净的格式。
justinas 2013年

统计数据显示cat /proc/net/dev有多长时间?
lalebarde 2014年

您如何从中获取tx / rx /proc/net/dev
Piotr Kula 2015年

1
尝试解析输出的3.和11.字段,例如awk'/:/ {print($ 1,$ 3,$ 11)}'</ proc / net / dev
dsmsk80 2015年

54

ipiproute2软件包中的命令是新工具。所述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

6
尽管proc答案是干净且轻巧的,但该答案可能是最接近ifconfig工具“替换”的答案,因为它的设计明确ifconfig考虑了替换。
Moshe Katz

2
ip -s link show dev eth0只显示eth0上的流量
pim,

4
要以易于阅读的形式获取此信息(以mb / gb / tb而不是字节报告),请使用-h标志。例如,ip -h -s link
Joseph Redfern

46

您可以通过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


2

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


2
欢迎来到社区!做得好,这是正确的,但请注意,某些旧内核不提供这些文件。祝你好运,成功!;)
FarazX
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.