В 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.