Доступ в Интернет необходим, но вы можете задаться вопросом, какие процессы 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
К сожалению, эти программы показывают потребителей сети только в реальном времени. Вот если бы они показывали вошедший и исходящий трафик от каждого процесса, было бы намного информативнее.