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

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

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

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

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

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

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

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

ntop немного тяжелый, но дает общее представление о сетевом трафике.

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

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

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

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

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

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

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

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

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

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