- узнать, какой процесс использует сеть
- Re: узнать, какой процесс использует сеть
- Re: узнать, какой процесс использует сеть
- Re: узнать, какой процесс использует сеть
- Re: узнать, какой процесс использует сеть
- Re: узнать, какой процесс использует сеть
- Узнаем кто использует сеть в Linux
- Установка NetHogs
- Кто же использует сеть
- Обновление данных
- Указываем сетевой интерфейс
- Горячие клавиши
- Выводы
- Утилита ss в Linux
- Общая информация
- Опции утилиты ss
- Примеры использования
- Мониторинг сетевых подключений
- Просмотр статистики статистики сетевых подключений
- Фильтрация по протоколу
- Фильтрация по состоянию соединения
- Фильтрация по адресу и номеру порта
- Выводы
узнать, какой процесс использует сеть
В kinternet вижу, что каждую секунду исходящий траффик поднимается до 64.128 Б/с и сразу падает до нуля и так по кругу. Прибил kopete, ktorrent, проверил konqueror страницы нигде не грузит — все равно этот маленький траффик идет. Как определить, что это такое? — куда он отправляется и каким процессом? раньше помню такого не было — останавливал все соединения и kinternet успакавался
Re: узнать, какой процесс использует сеть
Открой для себя команду netstat
Re: узнать, какой процесс использует сеть
>все равно этот маленький траффик идет. Как определить, что это такое? — куда он отправляется и каким процессом?
Сначала лучше посмотреть
остальные ключи по обстоятельствам — иначе без них может просто завалить выводом весь экран или лучше вообще перенаправить вывод в файл. Потом когда определишь с какого порта идет соединение или на какой порт приходит можно узнать что за процесс является его хозяином как уже писали выше
#netstat -A inet –program
но мне лично больше нравится lsof
Re: узнать, какой процесс использует сеть
sudo netstat -ap
Re: узнать, какой процесс использует сеть
Спасибо за информацию, lsof выглядит поприятнее, netstat похоже нужно еще помучать грепами и пайпами перед тем, как получить тоже самое.
Re: узнать, какой процесс использует сеть
> netstat похоже нужно еще помучать грепами и пайпами
Источник
Узнаем кто использует сеть в Linux
В Linux существует множество инструментов для мониторинга сетевой активности. Но большинство из них позволяют контролировать только сетевой трафик от вашего компьютера или конкретного интерфейса. Бывают случаи когда нужно понять какая программа наиболее активно использует сетевое соединение, например если у вы со своим медленным интернетом хотите спокойно посмотреть любимые сайты, а тут какая-то программа начинает что-то качать при чем какая не понятно. Вот для таких случаев есть инструмент NetHogs.
В этой статье мы обсудим установку, настройку и особенности работы с NetHogs.
Как сказано на man странице утилиты, NetHogs — небольшой сетевой монитор. Программа группирует сетевую активность не по протоколу или сети, а по группам процессов.
Если вдруг что-то начинает активно использовать интернет соединение, можно просто запустить NetHogs и вы сразу увидите PID виновника. Так как работа утилиты основана на подсистеме proc, на данный момент есть версия только для Linux.
Установка NetHogs
Пользователи Debian подобных систем, в том числе и Ubuntu могут установить утилиту с помощью следующей команды:
Если вы используете другой дистрибутив, посмотрите детали установки на официальном сайте NetHogs. Для работы утилиты необходимы библиотеки pcap и ncurses, убедитесь что пакеты libncurses5-dev и libpcap0.8-dev установлены.
Кто же использует сеть
NetHogs очень просто использовать. Просто выполните команду nethogs в терминале без каких либо параметров и утилита отобразит сетевую активность для каждого процесса.
Как вы видите программа показывает такие детали как PID, пользователя, сетевой интерфейс, количество данных и скорость передачи или приема.
Обновление данных
По умолчанию NetHogs обновляет информацию каждую секунду, но вы можете использовать опцию -d для указания интервала обновления. Например для обновления каждые три секунды наберите:
Указываем сетевой интерфейс
Вы можете указать NetHogs с каким сетевым интерфейсом работать, просто набрав имя интерфейса в командной строке. Например для мониторинга трафика на eth1 используйте:
Можно использовать опцию -p для перехвата трафика в неразборчивом режиме (так называемый monitor mode), но это не рекомендуется.
Горячие клавиши
В утилите предусмотрены горячие клавиши с помощью которых можно контролировать способ представления. Например нажмите M во время выполнения программы чтобы поменять формат представления приема или передачи данных. Возможны варианты в kb/s, kb, b mb.
Например, отображение в мегабайтах:
Также вы можете нажать R или S для сортировки по количеству принятых или переданных данных. И как всегда Q для выхода из программы.
Выводы
NetHogs идеально подходит для случаев, когда вы хотите, поймать и уничтожить процесс, который съедает много интернет трафика. Плюс — это утилита с открытым исходным кодом, что означает что вы можете попытаться понять как она работает или даже переписать ее под себя.
Вы использовали раньше NetHogs или другой подобный инструмент? Поделитесь своими мыслями в комментариях.
Источник
Утилита ss в Linux
Иногда бывает необходимо посмотреть какие сетевые подключения Linux открыты, какие IP адреса используются или какие порты прослушиваются. Раньше для таких целей использовалась утилита netstat. Её, без сомнения, знают все системные администраторы и специалисты по безопасности. Но она больше не поставляется по умолчанию в новых дистрибутивах. Вместо неё используется новая утилита под названием ss.
Netstat сканирует директорию /proc для получения необходимой информации, но в новых версиях ядра была реализована специальная подсистема для мониторинга сети в Linux. Её и использует ss, с помощью этой утилиты вы можете получить больше информации о сетевых подключениях и работает она гораздо быстрее.
Как вы уже поняли в этой статье мы рассмотрим мониторинг сетевых подключений в Linux с помощью утилиты из пакета iproute — ss linux. Начнем, как обычно, с синтаксиса и основных опций.
Общая информация
Как уже было сказано работает утилита ss в Linux на основе подсистемы ядра. Синтаксис очень простой — сама команда и ее опции:
$ ss опции [ фильтр_состояния] [фильтр_адреса]
Для удобства вывод команды ss можно фильтровать с помощью grep:
$ ss опции | grep шаблон
Опции указывает различные параметры отображения и фильтрации информации. Фильтры по состоянию и адресу очень интересная вещь, они позволяют выполнять мониторинг сетевых подключений в Linux, только тех что нужно. Например, только открытых, закрытых или находящихся на этапе подключения. Подробнее мы рассмотрим это в конце статьи.
Опции утилиты ss
Для сетевых подключений в Linux с помощью утилиты ss можно использовать такие опции:
- -V — Version показать версию утилиты.
- -n — Numeric не определять имена служб.
- -r — Resolve определять сетевые имена адресов с помощью DNS.
- -a — All отобразить все сокеты (открытые соединения).
- -l — Listening показать только прослушиваемые сокеты.
- -o — Options показать информацию таймера.
- -e — Extended выводить расширенную информацию о сокете.
- -p — Processes, показать процессы, использующие сокет.
- -i — Internal, посмотреть внутреннюю информацию TCP.
- -s — Summary, статистика использования сокета.
- -D — экспортировать текущее состояние TCP сокетов в файл.
- -F — работать с информацией, взятой из файла.
Кроме того, можно вывести сокеты только нужного протокола:
- -4, —ipv4 — только сокеты протокола IP версии 4.
- -6 —ipv6 — только сокеты протокола IP версии 6.
- -0, —packet — только PACKET сокеты.
- -t, —tcp — TCP сокеты.
- -u, —udp — UDP сокеты.
- -d, —dhcp — DHCP сокеты.
- -r, —raw — RAW сокеты.
- -x, —unix — UNIX сокеты.
Для фильтрации протоколов можно использовать не только эти опции, но и универсальную опцию -f, передав ей в параметре название протокола. Здесь собраны самые основные опции, если вам нужно больше информации — смотрите справку команды.
Примеры использования
А теперь давайте рассмотрим примеры использования утилиты ss Linux. Возможно, из описания опций вы мало что поняли, но с примерами все встанет на свои места.
Мониторинг сетевых подключений
Сначала смотрим все сетевые подключения:
Посмотрим только TCP соединения:
Теперь только Unix:
Для отображения UDP сокетов используйте опцию u. По умолчанию будут показаны только подключенные соединения. Если хотите получить все, нужно использовать опцию a. Поскольку UDP, это протокол без постоянного соединения, то без опции -a мы ничего не увидим:
По умолчанию утилита не пытается определять имена хостов через dns, но можно ее попросить делать это опцией -r:
Обратная опция -n, не будет выполняться не только dns резолвинг, но и определение протоколов портов, зато мониторинг сети в Linux работать будет быстрее:
Теперь просмотрим только прослушиваемые tcp сокеты.
Здесь мы видим только имена служб, это не всегда удобно, указав опцию n, мы получим номера портов. Так же само можно посмотреть прослушиваемые udp сокеты:
Также мы можем попытаться узнать название и PID процесса, использующего сокет:
Просмотр статистики статистики сетевых подключений
Для просмотра статистики по использованию сетевых подключений наберите:
С помощью опции -о можно посмотреть информацию о таймере и состоянии подключения.
Фильтрация по протоколу
Мы можем отображать только нужный нам протокол. Например только ipv4:
sudo ss -tl -f inet4
Так же само можно отобразить только соединения ipv6:
Фильтрация по состоянию соединения
В синтаксисе команды мы описали два дополнительных параметра. Фильтрация состояния и фильтрация по адресу. Рассмотрим теперь как ими пользоваться. Сокет TCP может находиться в одном из нескольких состояний. Например, так утилита ss linux выведет только подключенные сокеты.
ss -t4 state established
Или сокеты в состоянии ожидания:
sudo ss -t4 state time-wait
В параметр state можно передать одно из следующих значений:
- established
- syn-sent
- syn-recv
- fin-wait-1
- fin-wait-2
- time-wait
- closed
- close-wait
- last-ack
- closing
- all — все состояния
- connected — все кроме прослушиваемых и закрытых
- synchronized — все кроме syn-sent
- bucket — time-wait и syn-recv
- big — все кроме bucket
Не все состояния подключений можно увидеть просто выполнив команду. Например, syn-sent и syn-recv вряд ли получиться словить, потому что соединения находятся в этом состоянии очень короткое время. Для их отображения удобно использовать команду watch:
watch -n 1 «ss -t4 state syn-sent»
После запуска команды откройте любой сайт в браузере. Вы увидите как появится одно или несколько соединений на несколько секунд.
Фильтрация по адресу и номеру порта
Кроме фильтрации по состоянию, tcp сокеты можно фильтровать по адресам или портам соединений.
Например, отберем все сетевые подключения linux с портом источником или приемником ssh, то есть все входящие и исходящие соединения ssh:
ss -at ‘( dport = :ssh or sport = :ssh )’
Или сокеты с портом назначения 80 или 443:
ss -nt ‘( dst :443 or dst :80 )’
Такой синтаксис тоже будет работать:
ss -nt dst :443 or dst :80
Еще несколько примеров фильтрации:
Фильтрация по адресу:
ss -nt dst 74.125.236.178
Фильтрация по адресу и подсети:
ss -nt dst 74.125.236.178/16
И по адресу и порту:
ss -nt dst 74.125.236.178:80
Если вы хотите фильтровать сетевые соединения по порту, перед портом ставьте двоеточие:
ss -nt dport = :80
Можно использовать такие операторы сравнения:
- = или ge — больше или ровно порту.
- == или eq — точное соответствие.
- != или ne — не равно.
- или lt — больше.
Выводы
Вот и всё. Основную информацию о том, как выполнять мониторинг сети в Linux с помощью утилиты ss рассмотрели. Если вам нужно больше информации и примеров смотрите документацию по утилитам набора iproute.
Источник