Как за короткое время зарегистрировать все порты, когда-то открытые процессом / приложением в Linux?

285
Ilya Yevlampiev

У меня есть приложение, которое выполняет какое-то обновление в сети и некоторое время слушает какой-то порт, чтобы получить обратную связь в течение некоторого времени ожидания. Это достаточно коротко, чтобы наблюдать, если с netstat. Мне нужны события открытия порта и закрытия его для регистрации. Есть идеи?

2
Первое, что я бы попробовал, это "strace" с некоторой фильтрацией, чтобы получать только открытые и закрытые системные вызовы. dirkt 6 лет назад 1

1 ответ на вопрос

2
Ilya Yevlampiev

Я не уверен, что это лучший подход, но я использовал

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.215:35249 :