Назад | Перейти на главную страницу

Как узнать, какой процесс использовал порт после того, как он перешел в состояние TIME_WAIT?

В Linux есть способ выяснить, какой процесс использовал порт, прежде чем он перешел в TIME_WAIT штат.

Когда я использую netstat -tnp Я вижу только две конечные точки, но никакой информации о процессе.

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 127.0.0.1:38805             127.0.0.1:111               TIME_WAIT   -

В моем случае открытие сокета трассировки очень помогает мне определять состояния TIME_WAIT (поскольку обычно это означает, что мое приложение многократно создает сокеты)

На основе как я могу определить, какой процесс делает UDP-трафик в Linux? , Я пробовал auditcl. "-S socket" не работает в моем ubuntu, но приведенный ниже код (необязательно добавление -F pid =pgrep -x yourApplication ) неплохое обнаружение сокетов

auditctl -a exit,always   -S socketcall -F uid=$USER -F a0=1 -F a3=1  -k OPEN_SOCKETS

Нет, система просто этого не отслеживает.

TCPView достаточно ясно показывает, что закрытые сокеты, которые попадают в состояние TIME_WAIT, мгновенно переназначаются процессу 0 (System).


Извините, я неправильно понял ваш вопрос; приведенный выше ответ относится к Windows системы.
Однако я думаю, что то же самое происходит и в системах Linux.