Как контролировать использование сети для процессов Linux
К счастью, с помощью некоторых популярных утилит Linux легко отслеживать, какие процессы используют вашу пропускную способность. Вот некоторые из этих инструментов.
1. нетуги
nethogs — это программа, которая выполняет те же подключения к Интернету, что и htop или top, для использования процессора и памяти. Он показывает вам быстрый взгляд на то, какие процессы обращаются к сети.
Как и top, htop или atop, nethogs — это полноэкранная программа, которая обновляется каждые несколько секунд, чтобы показать вам текущие сетевые подключения.
Установить nethogs очень просто. Вам просто нужно пройти через менеджер пакетов.
Например, в Debian и Ubuntu:
sudo apt установить nethogs
И в Arch Linux:
sudo pacman -S nethogs
О семье Red Hat:
sudo dnf установить nethogs
Чтобы запустить nethogs, вам нужно быть root:
sudo nethogs
Его можно настроить так, чтобы вы могли запускать nethogs как обычный пользователь с помощью этой команды:
sudo setcap “cap_net_admin,cap_net_raw+pe” /путь/к/nethogs
Вы должны заменить «/path/to/nethogs» на абсолютный путь к nethogs. Вы можете найти это с помощью команды which:
какие сети
2. лсоф
Хотя lsof — это утилита для вывода списка открытых файлов, она также может отображать открытые сетевые подключения. Параметр -i перечисляет подключения к Интернету, связанные с процессами, запущенными в системе. В конце концов, в Linux все является файлом.
Чтобы увидеть текущие интернет-соединения, используйте эту команду:
lsof -я
lsof покажет вам имя любой команды с открытым подключением к Интернету, ее PID, дескриптор файла, тип подключения к Интернету, размер, протокол и официальное имя файла подключения.
Использование параметров -i4 и -i6 позволяет вам видеть соединения, использующие IPv4 или IPv6.
Скорее всего, у вас уже установлен lsof. Его также легко установить в основных дистрибутивах Linux, если вы еще этого не сделали.
В Debian и Ubuntu введите:
sudo apt установить lsof
И на Арке:
sudo pacman -S lsof
В строке дистрибутива Red Hat:
sudo dnf установить lsof
3. нетстат
netstat — мощная программа, позволяющая просматривать сетевые подключения в вашей системе. Он не показывает, какое сетевое соединение подключено. Как и в случае с lsof, вы можете увидеть это с помощью параметра командной строки.
netstat является частью пакета сетевых инструментов. Вы можете установить его в большинстве дистрибутивов Linux, используя менеджер пакетов по умолчанию.
Например, в Debian или Ubuntu:
sudo apt установить сетевые инструменты
В Arch Linux:
sudo pacman -S сетевые инструменты
Чтобы установить netstat в Fedora, CentOS и RHEL, запустите:
sudo dnf установить сетевые инструменты
Вы можете запустить netstat в командной строке. По умолчанию он покажет вам такую информацию, как протокол, адрес и статус соединения, но опция -p добавляет столбец, показывающий идентификатор процесса и имя команды.
netstat -p
Когда вы запустите его, netstat просто выведет список всех сетевых подключений, а затем завершит работу. С опцией -c можно увидеть постоянно обновляемый список подключений:
netstat -pc
Это было бы похоже на использование экранно-ориентированной программы, такой как nethogs, но преимущество этого способа в том, что вы можете направить вывод в другую программу, такую как grep или pager, чтобы проверить его:
нетстат -p | грэп ‘системд’
Чтобы увидеть все сетевые процессы в вашей системе, вам может потребоваться запустить netstat от имени пользователя root:
судо нетстат