由于ifconfig在主要的Linux发行版中显然已被弃用,因此我认为我应该了解有关ip工具的知识,该工具应代替ifconfig使用。

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

评论

您也可以签出netstat。 linux.die.net/man/8/netstat

#1 楼

另一个选择是使用/ 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


评论


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

–justinas
13年8月25日在15:23

cat / proc / net / dev显示的统计数据持续了多长时间?

– lalebarde
14年7月18日在10:35

如何从/ proc / net / dev获取tx / rx?

– Piotr Kula
15年6月8日在21:31

尝试解析输出的3.和11.字段,类似awk'/:/ {print($ 1,$ 3,$ 11)}'
–dsmsk80
2015年6月9日在13:04

#2 楼

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

获取接口的统计信息

评论


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

– Moshe Katz
13年8月29日在20:40

ip -s link show dev eth0仅显示eth0上的流量

– Pim
18年5月9日在11:33

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

–约瑟夫·雷德芬(Joseph Redfern)
19年4月25日在10:45

#3 楼

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

#4 楼

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

评论


欢迎来到社区!做得好,这是正确的,但请注意,某些旧内核不提供这些文件。祝你好运,成功! ;)

– FarazX
17 Mar 25 '17在17:56