Як в Linux можна дізнатися, який процес надсилає пакети Ethernet?


18

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

Хтось знає, як я можу отримати список процесів, які фактично використовують інтерфейс eth0, щоб я міг відстежувати порушника?


ПОСЛУГА : Дистрибутив Debian Linux містить nethogsпакет, який остаточно вирішує цю проблему. Споріднені інструменти, які не зовсім на марці включають iftop, netstatі lsof.


iptrafдобре
— Luv33preet

Це працювало для мене для дуже короткочасних обмінів UDP: serverfault.com/a/683327/119360
— Люк

Відповіді:



18

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.


(Не те, щоб потрібен прапор -u, якщо ви знаєте, що шукаєте TCP-з'єднання.)
— andol

5

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

Не впевнений, чи це те, що ви шукаєте.


4

Встановити iftop(простий текстовий) або ntop(графічний).


1
iftopвідображення лише використання пропускної здатності в інтерфейсі.
— кванта

Це показує набагато більше того. За замовчуванням він розбиває його на хост.
— Девід Шварц

Чи може він перелічити всі процеси, які використовують інтерфейс? Якщо так, чи можете ви нам показати команду та параметри?
— кванта

1
Не безпосередньо. Але як тільки ви знайдете хост, ви можете знайти процес, наприклад, з netstat -pn.
— Девід Шварц

3

Використовуйте tcpdumpдля обнюхання деяких пакетів цього інтерфейсу:

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

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


Не найпростіший спосіб отримати просту статистику, але все, що навіть трохи складніше, буде просвічувати!
— Silverfire
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.