Étant donné que ifconfig
est apparemment obsolète dans les principales distributions Linux, j'ai pensé apprendre quelque chose sur l'outil ip
qui est censé être utilisé à la place de ifconfig
.
Et là, j'ai rencontré un problème: lorsqu'il est exécuté seul, ifconfig
affiche le nombre d'octets reçus/transmis sur chaque interface en plus des autres informations. Je n'ai pas pu trouver un moyen d'obtenir cela à partir de ip
. N'y a-t-il pas une telle fonction dans cet outil? Quels autres outils intégrés puis-je utiliser pour obtenir ces statistiques?
Une autre option consiste à utiliser le système de fichiers/proc. Le fichier / proc/net/dev contient des statistiques sur les interfaces réseau configurées. Chaque ligne est dédiée à une interface réseau et contient des statistiques de réception et de transmission. Les statistiques comprennent des mesures telles que le nombre total d'octets reçus/transmis, de paquets, de suppressions, d'erreurs, etc.
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
Ou vous pouvez essayer la commande netstat qui peut afficher toutes les interfaces réseau et les statistiques associées:
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
La commande ip
qui fait partie du package iproute2 est le nouvel outil. La sous-commande link
sert à gérer les périphériques/interfaces.
Si vous pouvez obtenir les statistiques d'une interface en utilisant 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
Vous pouvez obtenir toutes les informations nécessaires via 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
Vous pouvez également utiliser iptables et analyser la sortie.
Pour les paquets reçus
# iptables -L INPUT -n -v
pour les paquets transmis
# iptables -L OUTPUT -n -v
Si le serveur est une passerelle, vous devez également analyser FORWARD chain
Vous pouvez lire le fichier /sys/class/net/wlp3s0/statistics/rx_bytes
et obtenir les rx_byes directement sans appeler une autre commande, vnstat
est également bon. Linux stocke toutes les informations dans des fichiers comme je le sais, il vaut donc mieux trouver ces fichiers et obtenir des informations. Trouver le fichier pertinent est le défi.