Как отслеживать использование сети для процессов в Linux

Доступ в Интернет необходим, но вы можете задаться вопросом, какие процессы Linux больше всего используют ваше соединение на вашем компьютере. К счастью, с помощью некоторых распространенных утилит Linux можно легко отслеживать, какие процессы используют вашу пропускную способность. Вот некоторые из них:

1. nethogs

nethogs — это программа, которая делает для подключений к Интернету то же, что htop или top делает для использования процессора и памяти. Он показывает вам снимок того, какие процессы получают доступ к сети.

Как и top, htop или atop, nethogs — это полноэкранная программа, которая обновляется через несколько секунд и показывает текущие сетевые подключения процессов.

Установка nethogs проста. Вы просто заходите через менеджер пакетов.

Например, в Debian и Ubuntu:

sudo apt install nethogs

И в Arch Linux:

sudo pacman -S nethogs

В семействе Red Hat:

sudo dnf install nethogs

Чтобы запустить nethogs, вам понадобится root:

sudo nethogs

Можно настроить так, чтобы вы могли запускать nethogs от имени обычного пользователя с помощью этой команды:

sudo setcap "cap_net_admin,cap_net_raw+pe" /path/to/nethogs

Вам следует заменить «/path/to/nethogs» на абсолютный путь к nethogs. Вы можете найти это с помощью команды:

which nethogs

2. lsof

lsof – это утилита для просмотра открытых файлов, но она может отображать и открытые сетевые подключения. Параметр -i перечисляет подключения к Интернету, подключенные к запущенным процессам в системе. В конце концов, в Linux все представляет собой файл.

Чтобы увидеть текущие подключения к Интернету, используйте эту команду:

lsof -i

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

Использование параметров -i4 и -i6 позволяет просматривать соединения с использованием IPv4 или IPv6.

Вполне вероятно, что lsof у вас уже установлен. Его также легко установить в основных дистрибутивах Linux, если это не так.

В Debian и Ubuntu введите:

sudo apt install lsof

В Arch:

sudo pacman -S lsof

В семействе дистрибутивов Red Hat:

sudo dnf install lsof

3. netstat

netstat сама по себе является мощной программой, позволяющей вам видеть сетевые подключения в вашей системе. Он не показывает, к каким процессам подключены сетевые подключения. Как и в случае с lsof, вы можете увидеть это с помощью параметра командной строки.

netstat является частью пакета net-tools. Вы можете установить его в большинстве дистрибутивов Linux, используя менеджер пакетов по умолчанию.

Например, в Debian или Ubuntu:

sudo apt install net-tools

В Arch Linux:

sudo pacman -S net-tools

Чтобы установить netstat в Fedora, CentOS и RHEL, выполните:

sudo dnf install net-tools

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

netstat -p

Когда вы запустите его, netstat просто выведет список всех сетевых подключений, а затем завершит работу. С опцией -c вы можете увидеть постоянно обновляемый список подключений:

netstat -pc

Это было бы похоже на использование графического интерфейса, такой как nethogs, но преимущество такого подхода состоит в том, что вы можете передать вывод в другую программу, например grep или пейджер, для его проверки:

netstat -p | grep 'systemd'

Чтобы увидеть все процессы с сетевыми подключениями в вашей системе, вам, возможно, придется запустить netstat от имени пользователя root:

sudo netstat 
Поделитесь с друзьями

Добавить комментарий

1 Комментарий
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
Art

К сожалению, эти программы показывают потребителей сети только в реальном времени. Вот если бы они показывали вошедший и исходящий трафик от каждого процесса, было бы намного информативнее.

1
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x