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

Почему это важно
Интернет-соединение в современной системе критично. Иногда требуется узнать, какой процесс «съедает» вашу полосу пропускания. Это нужно, если интернет медленный, если вы хотите обнаружить фоновую загрузку или подозрительную активность. Ниже — практические инструменты и приёмы для локального мониторинга сетевой активности.
Основные инструменты и как их использовать
1. nethogs
nethogs показывает использование сети по процессам в режиме, похожем на top/htop для CPU и памяти. Это полноэкранная утилита, которая обновляет данные каждые несколько секунд и отображает, какие процессы используют входящий и исходящий трафик.
Установка (пример для популярных дистрибутивов):
# Debian / Ubuntu
sudo apt install nethogs
# Arch Linux
sudo pacman -S nethogs
# Fedora / CentOS / RHEL
sudo dnf install nethogsЗапуск (требуются права root):
sudo nethogsЧтобы разрешить запуск nethogs обычному пользователю, можно назначить необходимые капабилити (замените /path/to/nethogs на реальный путь, найдёте через which):
which nethogs
sudo setcap "cap_net_admin,cap_net_raw+pe" /path/to/nethogsВажно: setcap даёт привилегии бинарнику. Делайте это только для доверенных программ.
2. lsof
lsof (list open files) показывает открытые файлы и сетевые соединения. Опция -i выводит сетевые сокеты, привязанные к процессам.
Примеры команд:
# Показать все текущие сетевые соединения
lsof -i
# Только IPv4
lsof -i4
# Только IPv6
lsof -i6Установка:
# Debian / Ubuntu
sudo apt install lsof
# Arch Linux
sudo pacman -S lsof
# Fedora / CentOS / RHEL
sudo dnf install lsoflsof выводит имя команды, PID, файловый дескриптор, тип протокола, состояние и адреса. Это удобно для быстрого соответствия PID ↔️ соединение.
3. netstat (и современная альтернатива ss)
netstat (из пакета net-tools) показывает таблицы соединений, маршрутизации и статистику интерфейсов. Опция -p добавляет PID/имя процесса. Однако netstat устаревает в некоторых дистрибутивах — вместо него рекомендуют ss (из iproute2).
Установка netstat:
# Debian / Ubuntu
sudo apt install net-tools
# Arch Linux
sudo pacman -S net-tools
# Fedora / CentOS / RHEL
sudo dnf install net-toolsИспользование:
# Показать соединения и процесс
netstat -p
# Постоянный режим (обновление)
netstat -pc
# Отфильтровать по процессу через grep
netstat -p | grep 'systemd'Альтернатива — ss (быстрее и современнее):
# Показать сокеты и процессы
ss -plant
# Показать UDP
ss -punss выводит похожую информацию и обычно предустановлен в новых дистрибутивах.
Когда один инструмент не подходит
- nethogs отлично показывает текущую скорость по процессам, но не хранит историю. Для длительного учёта нужен инструмент сбора метрик (Prometheus + node_exporter/blackbox) или tcpdump/wireshark для детального анализа.
- lsof даёт снимок «что сейчас открыто», но не показывает объёмы трафика.
- netstat или ss подходят для диагностики соединений, но не показывают объём переданных байт по процессам в реальном времени.
Альтернативные инструменты и подходы
- iftop — интерактивный просмотр трафика между хостами (не по процессам).
- bmon — мониторинг пропускной способности интерфейсов.
- iptraf-ng — текстовый сетевой монитор, полезен для статистики по портам/протоколам.
- tc / iptables / nftables — для управления трафиком и ограничения скорости.
- tcpdump/wireshark — захват пакетов и подробный анализ (полезно при подозрениях на утечку данных).
Модель принятия решения (как выбрать инструмент)
- Нужно быстро увидеть «кто сейчас гонит трафик» → nethogs.
- Нужно узнать, какие процессы открыли сетевые сокеты → lsof или ss.
- Нужна история и метрики → используйте систему мониторинга (Prometheus, Grafana) или собирайте статистику через nethogs + логирование.
- Требуется блокировка/ограничение трафика → tc или firewall (nftables/iptables).
Матрица сравнения (кратко)
- nethogs: по процессам, реальное время, нет истории.
- lsof: список открытых соединений, показывает PID, нет измерения объёма.
- ss/netstat: сетевые таблицы, подробности соединений, удобен для фильтрации.
- iftop: по парам хостов, интерактивно, не по PID.
- tcpdump: самый низкоуровневый, требует анализа пакетов.
Схема действий — быстрый чек-лист для ролей
Для домашнего пользователя:
- Запустите nethogs, посмотрите процессы.
- Если процесс неизвестен — lsof -i | grep
или ss -p. - При подозрении — остановите процесс или прервите соединение.
Для системного администратора:
- Используйте ss -plant и lsof для соответствия сервисов.
- Проверьте правила firewall и лимиты с tc.
- Включите логирование трафика и собирайте метрики.
Для специалиста по безопасности:
- Захватите пакеты tcpdump для подозрительных соединений.
- Проанализируйте связи с внешними IP и доменами.
- Убедитесь, что нет утечек чувствительных данных.
Полезный набор команд (cheat sheet)
# показать процессы по трафику
sudo nethogs
# показать сетевые соединения (lsof)
lsof -i
# показать все TCP-соединения с PID (ss)
ss -plant
# отфильтровать netstat/ss по процессу
netstat -p | grep <имя>
ss -p | grep <имя>
# найти путь к бинарнику
which nethogs
# дать бинарю нужные капабилити
sudo setcap "cap_net_admin,cap_net_raw+pe" /path/to/nethogs
# захват пакетов для PID (пример)
sudo tcpdump -i any host 1.2.3.4 and port 443Краткий глоссарий — одно предложение на термин
- PID — идентификатор процесса в системе.
- Сокет — конечная точка сетевого соединения (IP:порт).
- TCP/UDP — транспортные протоколы; TCP надёжный, UDP — без установления соединения.
- Capabilities — набор привилегий, которые можно дать бинарю без полного root-доступа.
Соображения по безопасности и конфиденциальности
Мониторинг сетевой активности затрагивает приватные данные. На рабочих местах соблюдайте правила компании и юридические требования. Захват пакетов (tcpdump/wireshark) может содержать личные данные — храните их защищённо и удаляйте по завершении анализа.
Важно: не давайте ненадёжным программам права root и capabilities без проверки их происхождения.
Критерии приёмки
- Вы можете идентифицировать процесс, который использует сеть сейчас.
- Вы знаете, как посмотреть PID и связать его с именем бинарника.
- Вы умеете временно остановить или ограничить трафик подозрительного процесса.
Краткое резюме
nethogs — лучший инструмент для быстрого интерактивного просмотра потребления трафика по процессам. lsof и ss/netstat дают более детальную информацию о текущих соединениях и PID. Для глубокого анализа используйте tcpdump/wireshark и системы мониторинга для истории. Всегда учитывайте безопасность и права доступа при запуске утилит.
Важно: если вы не уверены в процессе, сначала изучите его происхождение, затем прекращайте его работу.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента