Netstat linux активные соединения

Отслеживание состояния сети в Linux – команда netstat

Для получения сведений об активности и статистике сетевых соединений (интерфейсов) существует масса удобных мониторинговых приложений с графическим пользовательским интерфейсом, всевозможных виджетов и т. д. Однако, все эти решения построены на основе стандартных утилит, входящих в состав практически любой Linux- или UNIX-ориентированной системы. Для администрирования серверов на базе системы Linux такие стандартные утилиты являются достаточно исчерпывающим инструментом для получения информации о работе сети. Одной из таких является команда netstat. С помощью неё можно получить вывод с информацией о состоянии сетевого программного обеспечения, статистику сети, сведения о маршрутизации и т.д.

Синтаксис и опции netstat

-a Показывать состояние всех сокетов;
-o Показывать таймен
-i Показывает состояние сетевых интерфейсов
-n Показывать ip адрес, а не сетевое имя
-r Показать таблицы маршрутизации. При использовании с опцией -s показывает статистику маршрутизации.
-s Показать статистическую информацию по протоколам. При использовании с опцией -r показывает статистику маршрутизации.
-f семейство_адресов Ограничить показ статистики или адресов управляющих блоков только указанным семейством_адресов, в качестве которого можно указывать:inet Для семейства адресов AF_INET, или unix Для семейства адресов AF_UNIX.
-I интерфейс Показывать информацию о конкретном интерфейсе.
-p Отобразить идентификатор/название процесса, создавшего сокет (-p, —programs display PID/Program name for sockets)

Ключи можно комбинировать. Самая распространенная команда использования netstat это:

Эта команда выводит довольно большой список. Поэтому для получения нужной информации используйте grep. Например для получения всех портов которые слушаются в системе.

Контроль сетевых соединений

Используя опцию -i можно получить данные о состоянии сетевых интерфейсов системы, а также основных счётчиков трафика. Вывод предоставляется в виде наглядной таблицы с соответствующими столбцами. Формат самой таблицы зависит от используемой системы. К примеру, в Ubuntu, да и вообще в Debian-ориентированных системах он будет примерно таким:

Таблица интерфейсов ядра Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP eno1 1500 1876 127 0 0 9253 223 0 lo 6553 6529 0 0 0 6529 0 0

В данном выводе видно, как ведёт себя интерфейс eno1, через который осуществляется соединение в сеть, а также что происходит с интерфейсом обратной связи lo. В столбцах RX/TX приводится статистика по трафику с указанием количества пакетов, в том числе и пакетов с ошибками. В частности, показатель RX свидетельствует о количестве пакетов, полученных интерфейсом, TX – о количестве пропущенных через этот интерфейс пакетов с момента загрузки системы или первичной активации (задействования) интерфейса.

Читайте также:  Linux change console color

Количество ошибок (RX-ERR, TX-ERR) как правило, не должно быть больше 1% (в некоторых случаях 5%) от общего числа пакетов. Если ошибок больше, то следует проанализировать этот параметр на других компьютерах. Большое количество ошибок в сети (на других компьютерах) свидетельствует о неполадках в окружении сети. На отдельном компьютере излишнее их (ошибок) количество говорит о неполадках с сетевым интерфейсом (сетевая карта) или с самим соединением (кабели, совместимость оборудования).

Посмотреть сетевые соединения

Если дать команду netstat без параметров, то будет выведен список процессов (демонов), для которых установлены сетевые соединения. Если нужно также получить информацию о процессах, которые активных соединений не имеют, но слушают порты, нужно использовать ключ -a:

Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address ForeignAddress State tcp 0 0 *:ldap *:* LISTEN tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:imaps *:* LISTEN tcp 0 0 bull:ssh dhcp:4208 ESTABL tcp 0 0 bull:imaps nubark:54195 ESTABL tcp 0 0 bull:http dhcp:2563 ESTABL tcp 0 0 bull:imaps dhcp-18hw:2851 ESTABL

Данный вывод включает в себя также и информацию о системных сокетах UNIX и UDP. Как видно, в представленном отчёте зафиксировано входящее SSH-соединение, два входящих соединения IMAPS, одно входящее HTTP-соединение, а также несколько портов, которые «слушают» (LISTEN) другие соединения. Адреса в данном выводе представлены в формате имя_хоста:служба, где в качестве службы может выступать порт. В колонках Recv-Q и Send-Q отображается количество запросов в очередях на приём и отправку на данном узле/компьютере. Следует также отметить, что факт установки соединения проверяется только для протокола TCP. Кроме описанных состояний соединений имеются также и некоторые другие:

  • TIME_WAIT – ожидание на завершение соединения;
  • SYN_SENT – попытка некоторого процесса установить соединение с недоступным ресурсом или сервером;
  • SYN_WAIT – состояние, при котором данный узел не может обработать все поступающие запросы. Зачастую это может свидетельствовать об ограничении возможностей системного ядра, либо о попытках намеренно вызвать перегрузку на сервере.
Читайте также:  Линукс где хранятся приложения

Идентификация сетевых процессов

Для того, чтобы однозначно иметь представление о конкретных процессах или демонах, слушающих соединения (порты) в системе, следует воспользоваться ключами -l и -p. Первый позволяет выводить, собственно, только слушающие порты, второй — для идентификации процесса/демона, например:

Активные соединения с интернетом (only servers) Proto Recv-Q Send-Q Local Address ForeignAddress State PID/Program name tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 1154/mysqld tcp6 0 0 [::]:http [::]:* LISTEN 1201/apache2

Как можно видеть, в данном выводе веб-сервер (один из его процессов) прослушивает по протоколу tcp6 все HTTP-соединения. Демон MySQL прослушивает локальный порт mysql по протоколу tcp. Для того, чтобы иметь возможность видеть номера самих портов, а также IP-адреса хостов, следует к команде netstat -lp добавить ключ n. Стоит также отметить, что для получения полной информации о слушающих процессах нужно запускать команду netstat от имени суперпользователя. Если не используется опция -n и не работает служба DNS, то netstat будет выполняться очень медленно.

Получение статистики для различных сетевых протоколов

Команда netstat позволяет видеть статистические данные по использованию всех доступных в системе протоколов. Для этого нужно использовать ключ -s:

$ netstat -s Ip: 671349985 total packets received 0 forwarded 345 incoming packets discarded 667912993 incoming packets delivered 589623972 requests sent out 60 dropped because of missing route 203 fragments dropped after timeout Icmp: 242023 ICMP messages received 912 input ICMP message failed. ICMP input histogram: destination unreachable: 72120 timeout in transit: 573 echo requests: 17135 echo replies: 152195 66049 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 48914 echo replies: 17135 Tcp: 4442780 active connections openings 1023086 passive connection openings 50399 failed connection attempts 0 connection resets received 44 connections established 666674854 segments received 585111784 segments send out 107368 segments retransmited 86 bad segments received. 3047240 resets sent Udp: 4395827 packets received 31586 packets to unknown port received. 0 packet receive errors 4289260 packets sent

Как видно, выводимая статистика отображается с разбивкой по разделам для каждого протокола. Здесь содержатся очень полезные сведения для анализа и поиска неполадок в работе сети.

Читайте также:  Linux embedded operating systems

Также для команды netstat есть ещё один полезный ключ, позволяющий выводить обновлённые данные с интервалом в одну секунду. Этот ключ работает не в каждой связке с другими опциями. Однако, отслеживание интерфейсов в режиме реального времени с этим ключом очень удобно, например команда netstat -i -a -c будет выводить статистику по использованию всех интерфейсов в системе, в том числе и отключенных (ключ -a) автоматически каждую секунду — ключ -c.

Информацию о таблице маршрутизации позволяет получить ключ -r:

$ netstat -r -n Таблица маршрутизации ядра протокола IP Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eno0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector