Wie kann ich unter Linux den Datenverkehr aller IP-Adressen auf einer einzigen Schnittstelle mit mehreren IP-Adressen abrufen?

Wie kann ich unter Linux den Datenverkehr aller IP-Adressen auf einer einzigen Schnittstelle mit mehreren IP-Adressen abrufen?

In meinem Szenario hat mein Host eine Netzwerkschnittstelle mit mehreren IP-Adressen. Ich möchte den Datenverkehr jeder IP-Adresse abrufen. Ich möchte empfangene und gesendete Pakete und Bytes sowie Fehlerpakete abrufen. Meine Schnittstelle ist:

qg-6108c4a2-94@if209: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fa:16:3e:9e:58:d2 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 173.20.12.8/24 brd 173.20.12.255 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet 173.20.12.7/32 brd 173.20.12.7 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet 173.20.12.11/32 brd 173.20.12.11 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet 173.20.12.13/32 brd 173.20.12.13 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe9e:58d2/64 scope link
       valid_lft forever preferred_lft forever

Antwort1

Sie werden nicht in der Lage sein, die gewünschten Informationen zu erhalten. Die IPs sind Teil derselben einzelnen Schnittstelle und werden daher nur auf der physischen Ebene gezählt. Ich sollte beachten, dass "ifconfig"unzureichend und veraltetDer ipBefehl zeigt Ihnen die Zusammenfassung auf physischer Ebene.

% ip -s link show br1000
10: br1000: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:10:18:aa:a8:20 brd ff:ff:ff:ff:ff:ff
RX: bytes  packets  errors  dropped overrun mcast
15661372003 108647365 0       0       0       0
TX: bytes  packets  errors  dropped carrier collsns
278081828962 149463091 0       0       0       0

Sie müssen iptablesoder verwenden nftables, um zu verfolgen, was Sie verfolgen möchten.

# iptables example - probably incorrect, I don't have a dev machine to test this.
iptables -A INPUT -i br1000 -d 10.100.0.1/24 -j LOG
iptables -A OUTPUT -i br1000 -s 10.100.0.1/24 -j LOG

# nftables example - probably incorrect, I don't have a dev machine to test this.
nft add rule ip filter INPUT iifname "br1000" ip daddr 10.100.0.1 counter log
nft add rule ip filter OUTPUT iiname "br1000" ip saddr 10.100.0.1 counter log

Es gibt auch andere Zusatzsoftware, die Ihnen helfen kann. Die erste, die mir in den Sinn kommt, ist vnstat. Aber die Ergebnisse können bei Ihnen anders ausfallen.

verwandte Informationen