Wie bekomme ich TX / RX-Bytes ohne ifconfig?

62

Da ifconfiges in großen Linux-Distributionen anscheinend veraltet ist, dachte ich, ich würde etwas über das ipTool lernen , das anstelle von verwendet werden soll ifconfig.

Und hier bin ich auf ein Problem gestoßen: Wenn es alleine ausgeführt wird, ifconfigwird neben anderen Informationen die Anzahl der empfangenen / gesendeten Bytes auf jeder Schnittstelle angezeigt. Ich konnte keinen Weg finden, das herauszufinden ip. Gibt es keine solche Funktion in diesem Tool? Welche anderen integrierten Tools könnte ich verwenden, um diese Statistiken zu erhalten?

justinas
quelle
Sie können auch auschecken netstat. linux.die.net/man/8/netstat
SunSparc

Antworten:

53

Eine andere Option ist die Verwendung des Dateisystems / proc. Die Datei / proc / net / dev enthält Statistiken zu den konfigurierten Netzwerkschnittstellen. Jede Leitung ist einer Netzwerkschnittstelle zugeordnet und enthält Statistiken zum Empfangen und Senden. Die Statistiken umfassen Metriken wie die Gesamtzahl der empfangenen / gesendeten Bytes, Pakete, Abbrüche, Fehler usw.

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

Sie können auch den Befehl netstat verwenden, mit dem alle Netzwerkschnittstellen und zugehörigen Statistiken angezeigt werden:

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
dsmsk80
quelle
/proc/net/devhat das sauberste Format aller Lösungen, die IMO akzeptiert.
Justinas
Die angezeigten Statistiken cat /proc/net/devsind für wie lange?
Lalebarde
Wie kommt man zu tx / rx /proc/net/dev?
Piotr Kula
1
Versuchen Sie, das 3. und 11. Feld der Ausgabe zu analysieren, etwa awk '/: / {print ($ 1, $ 3, $ 11)}' </ proc / net / dev
dsmsk80
55

Der ipBefehl, der Teil des iproute2-Pakets ist, ist das neue Tool. Der linkUnterbefehl dient zur Verwaltung der Geräte / Schnittstellen.

Wenn Sie die Statistiken einer Schnittstelle mit erhalten können 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
Zoredache
quelle
6
Während die procAntwort klar und übersichtlich ist, kommt diese Antwort einem "Ersatz" für das ifconfigTool wahrscheinlich am nächsten, da sie explizit unter dem Gesichtspunkt des Austauschs von entwickelt ifconfigwurde.
Moshe Katz
2
ip -s link show dev eth0um nur den Verkehr auf eth0 zu zeigen
pim
4
Verwenden Sie das -hFlag, um dies in lesbarer Form zu erhalten (Berichterstellung in mb / gb / tb statt in Bytes) . Zum Beispiel ip -h -s link.
Joseph Redfern
46

Sie können alle notwendigen Informationen über proc erhalten

# 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

Sie können auch Iptables und Parsing-Ausgabe verwenden.

Für empfangene Pakete

# iptables -L INPUT -n -v

für übertragene Pakete

# iptables -L OUTPUT -n -v 

Wenn der Server ein Gateway ist, sollten Sie auch die FORWARD- Kette analysieren

ALex_hha
quelle
2

Sie können die Datei lesen /sys/class/net/wlp3s0/statistics/rx_bytesund die rx_byes direkt abrufen, ohne einen anderen Befehl aufzurufen, vnstatist auch gut. Wie ich weiß, speichert Linux alle Informationen in Dateien, damit Sie diese Dateien besser finden und Informationen abrufen können. Das Finden der relevanten Datei ist die Herausforderung.

Dinuka Salwathura
quelle
2
Willkommen in der Community! Gut gemacht, das ist richtig, aber beachten Sie, dass einige alte Kernel diese Dateien nicht bereitstellen. Ich wünsche Ihnen viel Glück und Erfolg! ;)
FarazX