ifconfig
在主要的Linux发行版中显然已被弃用,因此我认为我应该了解有关ip
工具的知识,该工具应代替ifconfig
使用。 我这里遇到一个问题:当单独运行时,
ifconfig
除了显示其他信息外,还显示了每个接口上接收/传输的字节数。我找不到从ip
获取此方法。此工具中没有这样的功能吗?我还可以使用哪些其他内置工具来获取这些统计信息?#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)}' proc / net / dev
–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
评论
您也可以签出netstat。 linux.die.net/man/8/netstat