Option 1

Option 1

Stellen Sie sich vor, Sie haben in einem Linux-basierten Router (einer Debian-Distribution) viele Netzwerkkarten. Wie kann man die Anzahl der offenen Verbindungen für eine bestimmte Netzwerkkarte ausdrucken? (Workarounds sind akzeptable Antworten)

Antwort1

Option 1

netstat | awk '$4 ~ /xxx.xxx.xxx.xxx/ { ++count } END { print count }'

Woxxx.xxx.xxx.xxxist die IP-Adresse der Netzwerkkarte.

  • netstatfindet alle offenen Verbindungen
  • awkstimmt mit der IP-Adresse der Netzwerkkarte überein
    • $4sagt awk, dass wir uns die vierte Spalte ansehen werden
    • { ++count } END { print count }weist an awk, für jedes Mal, wenn eine Übereinstimmung gefunden wird, hochzuzählen. Wenn es fertig ist, drucken Sie die endgültige Anzahl aus.

Option 2

netstat | grep xxx.xxx.xxx.xxx -c

Woxxx.xxx.xxx.xxxist die IP-Adresse der Netzwerkkarte.

  • netstatfindet alle offenen Verbindungen
  • grepstimmt mit der IP-Adresse der Netzwerkkarte überein
    • -cfordert dazu auf grep, die Anzahl der Übereinstimmungen zu zählen, anstatt sie auszudrucken.

Option 1 hat den Vorteil, dass nur das lokale Adressfeld und nicht alle anderen Felder übereinstimmen. Option 2 zählt möglicherweise doppelt, wenn offene Verbindungen bestehen, bei denen die Remoteadresse auf den lokalen Host verweist.

Antwort2

Das geht nicht. Einfache IP-Router leiten Datagramme einfach zustandslos weiter und betrachten nur die IP-Schicht. Sie würden nichts über Verbindungen wissen, für die sie nicht der Endpunkt sind.

Bei einer SPI-Firewall oder einem NAT-Gateway sieht die Sache anders aus.

Antwort3

Der Router verfolgt keine Verbindungen – Sie müssen die Firewall fragen.

Die Linux-Firewall unterstützt die zustandsbehaftete „Verbindungsverfolgung“, diese ist jedoch nicht unbedingt standardmäßig aktiv.WennSie haben eines davon:

  • eine iptables-Regel, die -m stateoder verwendet -m conntrack,
  • oder eine nftables-Regel, die verwendet ct state,
  • oder irgendwelche Regeln in den iptables/nftables NAT-Tabellen (z.B. die nat/prerouting-Kette),

dann ist das Conntrack-System der Firewall aktiv und Sie können sich dessen „Statustabelle“ wie folgt ansehen:

conntrack -L

Da dies jedoch von der Firewall (und nicht vom Router) durchgeführt wird, haben die Zustände keine Beziehung zu einer bestimmten Schnittstelle – sie betreffen nur die L3/L4-Adressierung.

verwandte Informationen