netstat der Einfachheit halber
Mit netstat
und nach der PID oder dem Prozessnamen suchen:
# netstat -np --inet | grep "thunderbird"
tcp 0 0 192.168.134.142:45348 192.168.138.30:143 ESTABLISHED 16875/thunderbird
tcp 0 0 192.168.134.142:58470 192.168.138.30:443 ESTABLISHED 16875/thunderbird
Und Sie könnten watch
verwenden für dynamische Updates:
watch 'netstat -np --inet | grep "thunderbird"'
Mit:
-n
:Numerische Adressen anzeigen, 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.
Streben für Ausführlichkeit
Sie sagten, Sie hätten den strace
ausprobiert Tool, aber haben Sie die Option trace=network
ausprobiert? ?Beachten Sie, dass die Ausgabe sehr ausführlich sein kann, sodass Sie möglicherweise etwas gruppieren müssen. Sie könnten beginnen, indem Sie "sin_addr" gruppieren.
strace -f -e trace=network <your command> 2>&1 | grep sin_addr
Oder verwenden Sie für einen bereits laufenden Prozess die PID:
strace -f -e trace=network -p <PID> 2>&1 | grep sin_addr
sysdig
ermöglicht es Ihnen, die gesamte Aktivität des Kernels oder mehrerer Befehle, die in Ihrem System ausgeführt werden, auf einmal zu überwachen, einschließlich und nicht beschränkt auf Netzwerkaktivitäten.
Da die Ausgabe groß sein kann, müssen Sie Filter erstellen, die Standardseite für die einfachsten Filter ist ziemlich verständlich.
Es hat auch den Vorteil, dass es nicht als Anwendungs-Wrapper wie in strace
verwendet wird , und es kann sehr mächtig sein.
Aus Sysdig-Beispielen
Netzwerken
Sehen Sie sich die wichtigsten Prozesse in Bezug auf die Nutzung der Netzwerkbandbreite an
sysdig -c topprocs_net
Zeigen Sie die Netzwerkdaten an, die mit dem Host 192.168.0.1 ausgetauscht wurden
Als Binär:
sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1
Als ASCII:
sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1
Sehen Sie sich die Top-Localserver-Ports an:
In Bezug auf etablierte Verbindungen:
sysdig -c fdcount_by fd.sport "evt.type=accept"
In Bezug auf Gesamtbytes:
sysdig -c fdbytes_by fd.sport
Sehen Sie sich die Top-Client-IPs an
In Bezug auf etablierte Verbindungen
sysdig -c fdcount_by fd.cip "evt.type=accept"
In Bezug auf Gesamtbytes
sysdig -c fdbytes_by fd.cip
Listet alle eingehenden Verbindungen auf, die nicht von Apache bedient werden.
sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
Ich würde einen neuen Netzwerk-Namespace erstellen, ihn mit dem echten Netzwerk überbrücken und dann die Brücke mit tcpdump
überwachen .