Проверка с помощью netstat

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

Отображение таблицы маршрутизации

При вызове netstat с -r флагом, он показывает таблицу маршрутизации. На выводе, он выдаст:

# netstat -nr
Kernel routing table
Destination     Gateway         Genmask         Flags Metric Ref  Use  Iface
127.0.0.1       *               255.255.255.255 UH    1      0    50   lo
191.72.1.0      *               255.255.255.0   U     1      0    478  eth0
191.72.2.0      191.72.1.1      255.255.255.0   UGN   1      0    250  eth0

Опция -n заставляет netstat печатать адреса в виде IP-номеров в формате dotted quad, вместо символических имен хостов и сетей. Это особенно полезно, когда вы хотите избежать поиска адреса по сети, например, через DNS или NIS сервер. Вторая колонка вывода netstat показывает шлюз маршрута. Если шлюз не используется, отображается звездочка. Третья колонка — это маска маршрута. Когда задается IP-адрес, чтобы найти подходящий маршрут для него, ядро просматривает все записи таблицы маршрутизации, применяет к адресу побитовое И с маской и затем сравнивает результат с целью маршрута.

Четвертая колонка показывает различные флаги, которые описывают маршрут:

Отображение статистики интерфейса

При вызове netstat с флагом -i, программа показывает статистику для сетевых интерфейсов. Если, кроме того, указана опция -a, она будет выводить информацию обо всех интерфейсах, представленных в ядре, а не только о тех, которые были настроены на данный момент. Вывод от netstat будет выглядеть следующим образом:

$ netstat -i
Kernel Interface table
Iface   MTU   Met  RX-OK  RX-ERR  RX-DRP  RX-OVR  TX-OK   TX-ERR  TX-DRP  TX-OVR  Flags
lo      0     0    3185   0       0       0       3185    0       0       0       BLRU
eth0    1500  0   972633  17      20      120     628711  217     0       0       BRU

Поля MTU и Met показывают текущий MTU и метрическое значение для данного интерфейса. Колонки RX и TX отображают, сколько пакетов было получено или передано без ошибок (RX-OK/TX-OK), сколько из них было повреждено (RX-ERR/TX-ERR), потеряно (RX-DRP/TX-DRP) и сколько было утеряно из-за переполнения (RX-OVR/TX-OVR). Последняя колонка отражает флаги, установленные для этого интерфейса. Здесь используется укороченная версия флагов, которую выводит команда ifconfig.

Отображение соединений

Netstat предоставляет множество опций для отображения активных и пассивных сокетов. Опции -t, -u, -w, и -x позволяют просмотреть активные сокеты для TCP, UDP, RAW или UNIX соответственно. При использовании флага -a также будут показаны сокеты, которые находятся в режиме ожидания соединения. Это позволяет увидеть список всех серверов, которые в данный момент активны в вашей системе.

$ netstat -ta
Active Internet connections   Proto Recv-Q Send-Q Local Address    Foreign Address    (State)
tcp        0      0 *:domain         *:*                LISTEN
tcp        0      0 *:time           *:*                LISTEN
tcp        0      0 *:smtp           *:*                LISTEN
tcp        0      0 vlager:smtp      vstout:1040        ESTABLISHED
tcp        0      0 *:telnet         *:*                LISTEN
tcp        0      0 localhost:1046   vbardolino:telnet  ESTABLISHED
tcp        0      0 *:chargen        *:*                LISTEN
tcp        0      0 *:daytime        *:*                LISTEN
tcp        0      0 *:discard        *:*                LISTEN
tcp        0      0 *:echo           *:*                LISTEN
tcp        0      0 *:shell          *:*                LISTEN
tcp        0      0 *:login          *:*                LISTEN

Из вывода видно, что большинство серверов находятся в режиме ожидания соединения. Однако, четвёртая строка указывает на SMTP-соединение с vstout, а шестая — на telnet-соединение с vbardolino. При использовании флага -a будут отображаться все сокеты всех семейств.