Як в 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.