Ich möchte die Netzwerkaktivität eines Befehls verfolgen. Ich habe versucht, tcpdump und strace ohne Erfolg auszuführen.
Wenn ich beispielsweise ein Paket installiere oder einen Befehl verwende, der versucht, eine Site zu erreichen, möchte ich diese Netzwerkaktivität (die Site, die er zu erreichen versucht) anzeigen.
Ich denke, wir können dies mit tcpdump tun. Ich habe versucht, aber es verfolgt alle Netzwerkaktivitäten meines Systems. Angenommen, ich führe mehrere netzwerkbezogene Befehle aus und möchte nur bestimmte Befehlsnetzwerkaktivitäten verfolgen. In diesem Fall ist es schwierig, die genaue Lösung zu finden.
Gibt es eine Möglichkeit, das zu tun?
AKTUALISIEREN:
Ich möchte nicht alles auf meiner Netzwerkschnittstelle nachverfolgen. Ich möchte nur die Netzwerkaktivität des Befehls (zum Beispiel #yum install -y vim) verfolgen. Wie die Website, die es zu erreichen versucht.
Antworten:
Der Einfachheit halber netstat
Den
netstat
PID- oder Prozessnamen verwenden und nach ihm suchen:Und Sie könnten
watch
für dynamische Updates verwenden:Mit:
-n
: Zeigen Sie numerische Adressen an, anstatt zu versuchen, symbolische Host-, Port- oder Benutzernamen zu ermitteln-p
: Zeigt die PID und den Namen des Programms an, zu dem jeder Socket gehört.--inet
: Nur Raw-, UDP- und TCP-Protokoll-Sockets anzeigen.Strace für Ausführlichkeit
Sie sagten, Sie haben das
strace
Tool ausprobiert , aber haben Sie die Option ausprobierttrace=network
? Beachten Sie, dass die Ausgabe sehr ausführlich sein kann, sodass Sie möglicherweise etwas Greifen benötigen. Beginnen Sie mit "sin_addr".Oder verwenden Sie für einen bereits laufenden Prozess die PID:
quelle
netstat
die IMHO die einfachste und sauberste Lösung ist.strace
Ausgabe weiter zu filtern , indemconnect
Sie nur die Systemaufrufe beibehalten und diedns
Anforderungen (Port 53) entfernen :| grep connect | grep -v 'sin_port=htons(53)'
Ich würde einen neuen Netzwerk-Namespace erstellen , ihn mit dem realen Netzwerk verbinden und dann die Bridge mit überwachen
tcpdump
.quelle
sysdig
Ermöglicht Ihnen die Überwachung aller Aktivitäten des Kernels oder mehrerer Befehle, die in Ihrem System ausgeführt werden, einschließlich und nicht beschränkt auf Netzwerkaktivitäten.Da die Ausgabe sehr umfangreich sein kann, müssen Sie Filter erstellen. Die Standardseite für die grundlegendsten Filter ist verständlich.
Es hat auch den Vorteil, dass es nicht als Anwendungs-Wrapper wie in verwendet wird
strace
, und es kann sehr leistungsfähig sein.Aus Sysdig-Beispielen
quelle
Mit wireshark können Sie den gesamten Ein- und Ausgabeverkehr einer Netzwerkschnittstelle aufspüren. Falls Sie eine Option ohne GUI benötigen, können Sie tshark verwenden.
Mit beiden Optionen können Sie den gesamten Netzwerkverkehr anzeigen und speichern, um später alle eingerichteten Verbindungen zu analysieren.
quelle