Linux: jak stale monitorować, który proces korzysta z którego portu (np. Procmon w systemie Windows)?


2

Zakładając, że masz serwer z wieloma procesami (niektóre rozpoczynające się w przypadkowym czasie) nasłuchującymi na portach, i chcę zrozumieć, co się dzieje. Mogę rejestrować cały ruch za pomocą:

sudo tcpdump -w capture.pcap -i any

Jest to bardzo pomocne i widzę pewne ładunki, które chcę zrozumieć, który proces jest odpowiedzialny za wysyłanie. Więc wykonuję następujące czynności:

netstat -nputwc > netlog

... jest to DALEKO od ideału, ponieważ robi to tylko netstat co sekundę (może pominąć otwieranie / zamykanie gniazd). Tak więc dla niektórych pakietów sieciowych widzę, że proces został rozłożony, wysłał coś, a następnie został zamknięty. Mam więc PID, ale nie mam pojęcia, który program za nim stoi. Wiem, że mogę użyć strace, aby uzyskać potrzebne informacje, ale wymagałoby to wcześniejszej znajomości PID, czego nie:

strace -yfp <pid> -e trace=open,close,read,write,connect,accept

Potrzebowałbym czegoś równoważnego strace, ale to rejestruje wszystkie informacje o procesach / gniazdach dla wszystkich procesów w systemie. W systemie Windows używałem do tego celu procmon ( https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx ). Czy istnieje równoważne narzędzie dla systemu Linux?

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.