Как мне узнать, какие процессы используют сеть?

Иногда я вижу интенсивное использование сети в моем системном мониторе Gnome. Интересно, какой процесс загрузки / выгрузки данных. Есть ли инструмент, который может показать мне:

  1. какие процессы используют интернет
  2. динамическое представление в реальном времени скорости загрузки / выгрузки этих процессов
  3. сведения о соединениях (например, удаленный IP-адрес, номер порта и т. д.)

Моя система Ubuntu 10.10.

Я старался lsof но вывод выглядит так НЕ дружелюбно. Может быть, есть какие-то хитрости, чтобы его использовать? Или есть лучшие альтернативы?

5 ответов

netstat --inet -ap покажет вам, какие процессы используют Интернет и какой хост / порт использует каждый процесс. Если вы хотите IP-адреса, а не имена хостов, используйте -n, (--inet показывает только интернет-сокеты, -a показывает разъемы для прослушивания и подключения, -p показывает имя процесса / идентификационную информацию). Возможно, вы захотите запустить его с sudo так что он может дать вам информацию обо всех процессах.

nethogs покажет вам, какую пропускную способность использует каждый процесс, но не скажет, к какому хосту подключается каждый процесс.

Ntop немного тяжел, но дает вам обзор сетевого трафика в целом.

(netstat установлен по умолчанию, а nethogs и ntop доступны в репозиториях Ubuntu)

Насколько я знаю, нет единой утилиты, которая объединяет 1, 2 и 3.

Nethogs может обработать ваши первые два запроса. Ифтоп может справиться с третьим. Возможно, вам придется нажать p в iftop, чтобы показать номер порта.

NetHogs - это небольшой инструмент для работы с сеткой. Вместо того, чтобы разбивать трафик на протокол или подсеть, как это делают большинство инструментов, он группирует пропускную способность по процессам.NETHogs не требует загрузки специального модуля ядра. Если внезапно появляется большой сетевой трафик, вы можете запустить NetHogs и сразу увидеть, какой PID вызывает это. Это позволяет легко идентифицировать программы, которые вышли из строя и внезапно занимают вашу пропускную способность.

iftop делает для использования сети то, что top(1) делает для загрузки процессора. Он прослушивает сетевой трафик на именованном интерфейсе и отображает таблицу текущего использования полосы пропускания парами хостов.

Для использования lsof -i,

Вы также можете запросить активные соединения для каждого процесса, используя netstat -punta запустить от имени пользователя root, чтобы показать имена процессов или без, чтобы показать только PID. Чтобы получить динамическое представление в реальном времени, вы можете легко обойти, используя часы -> watch -n1 netstat -punta(то же самое касается ифтопа).

Что касается альтернатив, вы можете использовать ntop + iftop.

iftop эквивалентно top для процессов, которые показывает все, вы можете нажать p переключиться, чтобы показать порт.

Проверьте netstat -p, хотя я не знаю, найдете ли вы вывод намного более дружелюбным, чем lsof. Это также не будет соответствовать вашему второму требованию.

Другие вопросы по тегам