Wie kann ich bei den per ifconfig gesendeten RX/TX-Paketen die gesendeten RX/TX-Bytes abrufen?

Wie kann ich bei den per ifconfig gesendeten RX/TX-Paketen die gesendeten RX/TX-Bytes abrufen?

Ich verwende UbuntuLinuxv18, und dies sind die Informationen, die ifconfigich über meine Netzwerkkarte erhalte:

$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.123  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::4a75:bbe4:742d:d77b  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:55:c7:9f  txqueuelen 1000  (Ethernet)
        RX packets 2443063  bytes 868405621 (828.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2343559  bytes 1022562153 (975.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Einige Systeme (z. B. eingebettetes Linux auf Routern)nur RX/TX-Pakete melden, aber keine RX/TX-Bytes anzeigen.

Gibt es unter Linux-Betriebssystemen eine Möglichkeit,RX/TX-Bytes aus gegebenen RX/TX-Paketen abrufen?

Ich denke, einige damit verbundene Fragen wären:

  • Ist diese Äquivalenz immer gleich (z. B. Faktor 1024)?
  • Ändert sich diese Äquivalenz während der Ausführung (dynamisch)?
  • Ist diese Äquivalenz betriebssystemabhängig? Oder vielleicht NIC-abhängig?
  • Gibt es überhaupt eine Gleichwertigkeit?

Antwort1

Es gibt keine Äquivalenz, die Größe der Pakete variiert je nach Inhalt. Es gibt nur minimale und maximale Größen. Beispielsweise können Ethernet-Frames zwischen 72 und 1530 Oktette belegen (Jumbo-Frames werden ignoriert).NPakete auf einer Ethernet-Schnittstelle repräsentieren irgendwo zwischen 72 ×Nund 1530 ×Nübertragene Bytes.

Der ifconfigBefehl auf Ihrem Router zeigt möglicherweise nicht die Byte-Anzahl an, aber wenn Ihr Router Linux verwendet, werden diese Zählungen verfolgt.Moskitokommentiert, sollten Sie sie sehen können mit

ip -s link show eth0

oder

head /sys/class/net/eth0/statistics/*_bytes

verwandte Informationen