Wie werden alle Ports protokolliert, die in Linux für kurze Zeit von einem Prozess / einer App geöffnet wurden?

417
Ilya Yevlampiev

Ich habe eine App, die eine Art Aktualisierungs-Ping für das Netzwerk durchführt und für einige Zeit auf einen Port wartet, um während eines Timeouts Feedback zu erhalten. Es ist kurz genug, um zu beobachten, ob mit netstat. Ich brauche Ereignisse, um Port zu öffnen und zu schließen, um protokolliert zu werden. Irgendwelche Ideen?

2
Das erste, was ich versuchen würde, ist "strace" mit einigen Filtern, um nur offene und geschlossene Systemaufrufe zu erhalten. dirkt vor 6 Jahren 1

1 Antwort auf die Frage

2
Ilya Yevlampiev

Ich bin mir nicht sicher, ob es der beste Ansatz ist, aber ich habe ihn verwendet

buffer1=$(ss -ltun); while true; do buffer2=$(ss -ltun); diff <(echo "$buffer1") <(echo "$buffer2") >> netlog2.log; buffer1=$buffer2; done 

^ C

cat netlog2.log 6c6 <tcp 0 8 172.16.1.215:31087 :
---

tcp 0 8 172.16.1.215:47339 :
6d5 <tcp 0 8 172.16.1.215:47339 :
11a11 tcp 0 8 172.16.1.215:49491 :
11d10 <tcp 0 8 172.16.1.215:49491 :
10a11 tcp 0 8 172.16.1.21535359 :