Verkehrsstatistiken pro Netzwerkport

Verkehrsstatistiken pro Netzwerkport

Ich habe zwei Maschinen mit zwei Anwendungen, die über mehrere Netzwerkports (TCP und UDP) miteinander kommunizieren. Ich möchte den Datenverkehr zählen, den sie senden und empfangen. Ich brauche nicht nur die Gesamtzahl, sondern auch Statistiken pro Maschine, pro Port und Tag. Ich habe versuchtdunkelstat, es werden jedoch keine Statistiken pro Tag bereitgestellt, sondern nur Gesamtzähler.

Gibt es eine andere Möglichkeit, den Datenverkehr zu zählen (ich kann zwischen die beiden Maschinen einen Proxy oder ein Gateway einfügen)?

Antwort1

iptables kann Ihnen Statistiken darüber liefern, wie oft jede Regel ausgelöst wurde, sodass Sie LOG-Regeln für die relevanten Ports hinzufügen können (sagen wir Port 20 und Port 80):

iptables -A INPUT -p tcp --dport 22
iptables -A INPUT -p tcp --dport 80

und dann

iptables -n -L -v

gibt Ihnen die Anzahl der über diese Ports gesendeten Pakete und Bytes an. Natürlich müssen Sie aus der Ausgabe die Ports analysieren, die Sie interessieren.

Wenn Sie genaue Werte benötigen, fügen Sie ein -x hinzu:

iptables -n -L -v -x

Antwort2

Sie können Ihrer iptables-Konfiguration Abrechnungsregeln hinzufügen. Diese sollten gelten, bevor Sie ESTABLISHED und RELATED-Datenverkehr akzeptieren, da Sie sonst den durchgelassenen Datenverkehr nicht zählen können. Um den Webdatenverkehr zu zählen, versuchen Sie eine Regel wie:

iptables -A INPUT -p tcp --dport 80 

Wenn Sie eine Menge davon haben, möchten Sie möglicherweise eine Abrechnungskette erstellen, damit Sie isoliert von anderen Ketten Berichte und Zähler darauf auf Null setzen können.

DerUfermauerMit der Firewall können Sie Ihrem Regelsatz problemlos Abrechnungsregeln hinzufügen.

Antwort3

Vergessen Sie nicht, Statistiken zum Ausgabeverkehr einzuschließen.

# Port 80 (HTTP).
iptables -A INPUT -p tcp --dport 80
iptables -A OUTPUT -p tcp --sport 80

# Port 443 (HTTPS).
iptables -A INPUT -p tcp --dport 443
iptables -A OUTPUT -p tcp --sport 443


iptables -n -L -v
iptables -n -L -v -x


iptables -n -L -v -x | grep -i "Chain\|:443\|:80"

Chain INPUT (policy DROP 357 packets, 22828 bytes)
 1286265 75076978 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:80
 1305378 75018232 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:443

Chain OUTPUT (policy ACCEPT 303516 packets, 94716311 bytes)
     442   255112        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:80
      46    10515        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:443

Antwort4

Es ist nicht klar, ob Sie die Nutzung pro Ziel-IP benötigen, abervnstatist ein nützliches Tool zum Aufzeichnen des Datenverkehrs pro Schnittstelle. Installieren Sie es und führen Sie es dann vnstat -u -i eth0für jede Schnittstelle aus, die Sie überwachen möchten. Um dann die Nutzung pro Tag zu erhalten, verwenden Sie vnstat -i eth0 -d.

verwandte Informationen