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

Как в Linux узнать, какой процесс отправляет пакеты Ethernet?

Я запускаю gkrellm, который показывает, что какой-то процесс в моей системе Debian Linux записывает около 500 КБ / с в eth0. Я хочу узнать, что это за процесс. Я немного знаю о netstat, но он показывает миллиард открытых TCP-соединений, и я не могу заставить его выдавать какую-либо информацию о трафике.

Кто-нибудь знает, как я могу получить список процессов, которые на самом деле с помощью интерфейс eth0, чтобы я мог выследить преступника?


СЛЕДОВАТЬ ЗА: Дистрибутив Debian Linux содержит nethogs пакет, который решает эту проблему окончательно. Связанные инструменты, которые не совсем подходят, включают iftop, netstat, и lsof.

netstat -ptu предоставит вам идентификаторы процессов-владельцев (вместе со стандартной информацией netstat) для всех соединений TCP и UDP. (Обычные пользователи не смогут идентифицировать все процессы.)

Если что-то отправляет изрядное количество постоянного трафика, вы должны увидеть это на Recv-Q или Send-Q столбцы 2 и 3 соответственно.

Примеры:
Recv-Q
sudo watch -n .1 'netstat -tup | grep -E "^[t,u]cp[6]{0,1}" | sort -nr -k2'

Send-Q
sudo watch -n .1 'netstat -tup | grep -E "^[t,u]cp[6]{0,1}" | sort -nr -k3'

Если вы подозреваете, что этот процесс запускается другим процессом ps axf.

я предпочитаю nethogs. Это небольшая консольная программа на основе ncurses, которая удобно отображает состояние сетевого трафика для каждого процесса.

Более ручной операцией, если вы ищете только процесс отправки / получения данных, будет запуск lsof команда. В нем будут перечислены все открытые файлы для каждого процесса, которые будут включать сетевые подключения, поскольку они являются файловыми дескрипторами для ОС.

Не уверен, что это то, что вы ищете.

Установить iftop (простой текст) или ntop (графический).

Использовать tcpdump чтобы прослушать некоторые пакеты на этом интерфейсе:

# tcpdump -vv -s0 -i eth0 -c 100 -w /tmp/eth0.pcap

Скопируйте в клиент и откройте с помощью Wireshark, чтобы увидеть, что произойдет.