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

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

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

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

# 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 печатать адреса как dotted quad IP   номера  вместо символических имен хостов и сетей. Это особенно полезно   когда  Вы  хотите  избежать поисков адреса по сети (например через DNS   или NIS сервер).
Вторая     колонка     вывода    netstat    показывает    gateway   маршрутизационную  запись.  Если  gateway  не используется, печатается   звездочка.  Третья колонка "общность" маршрута. Когда дается IP адрес,   чтобы найти подходящий маршрут для него, ядро просматривает все записи   таблицы  маршрутизации,  берет  побитовое И адреса и genmask и лишь за   тем сравнивает результат с целью маршрута.   
Четвертая  колонка  показывает различные флаги, которые описывают   маршрут:

  • G маршрут использует gateway.
  • U интерфейс, который нужно использовать, работает.
  • H Только отдельный хост может быть достигнут через данный маршрут.
    Например, для loopback записи 127.0.0.1.
  • D устанавливается, если запись таблицы была произведена по приходу   ICMP перенаправляемое сообщение ( см. секцию 3.5 ).   
  • M устанавливается, если запись таблицы была изменена ICMP   перенапавляемым сообщением.
    Ref  колонка  показывает  число  ссылок  на этот маршрут, то есть   сколько  других  маршрутов  (например  через  gateways)  полагаются на   присутствие  этого маршрута. Последние две колонки показывают время, в   течении которого используется запись маршрутизации, и интерфейс, через который посылаются дэйтаграмы.

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

Когда  вызывается  с -i флагом, netstat показывает статистику для   сетевых  интерфейсов.  Если,  кроме  того,  дается  -a опция, он будет   печатать все интерфейсы представленные в ядре, а не только те, которые   были отконфигурированы в настоящее время. На vstaout, вывод от 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/TXERR),  сколько было потеряно (RX-DRP/TX-DRP), и сколько было потеряно из-за переполнения (RX-OVR/TX-OVR). 
Последняя  колонка  показывает  флаги,  установленные  для  этого   интерфейса.  Здесь  используется односимвольная версия флагов, которые   печатает ifconfig.

  • B  был установлен широковещательный адрес.
  • L Этот интерфейс -- loopback устройство
  • M интерфайс получает все пакеты ( promiscuous способ ).
  • N Трейлеры избегаются.
  • O ARP выключен для этого интерфейса.
  • P Это - point-to-point соединение.
  • R Интерфейс работает.
  • U Интерфейс активен.

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

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

$ 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  флага  будут отображаться все гнезда всех   семейств.