Для того, чтобы посмотреть работает та или иная сетевая программа, открыты или закрыты порты или просто нужно посмотреть таблицу маршрутизацию - используется команда netstat. Она позволяет получить информацию об активности сетевых интерфейсах.
Содержание
Установка
Для начала проверим, установлена ли программа.
Для этого, введем в терминале название утилиты без параметров.
netstat
Если результат выполнения утилиты будет "command not found", значит она не установлена.
netstat входит в пакет net-tools, поэтому нужно устанавливать net-tools.
Устанавливаем на Astralinux / Дебиан / Убунту:
apt-get install net-tools
На centos:
yum install net-tools
Синтаксис
netstat [параметры]
Основные параметры:
- a или -all - выводит информацию о всех сокетах(об активных которые слушают порты и неактивных, которые не слушают).
- -r или --route - выводит на экран таблицу маршрутизации.
- -i или --interfaces - выводит информации об интерфейсах.
- -g или --groups - показывает информацию о группах (multicast).
- -M или --masquerade - активные nat соединения.
- -s или --statistics - статистическая информация по протоколам (IP, Tcp, Udp, Icmp, IcmpMsg, UdpLite, TcpExt, IpExt).
- -l или --listening - интерпретатор покажет сокеты, которые находятся в состоянии listen (слушает).
- -p или programs - название программы для сокета.
- --help - справочная информация.
Примеры
Для первого примера, получим информацию обо всех портах. Для этого будем использовать опцию "-a". Чтобы список не был слишком большим, ограничим его с помощью "more". more - позволяет читать большие тексты по одной странице.
$ netstat -a | more
Проверим, работу программы для кэширования данных "memcached". Для удобства будем использовать сразу три аргумента "-tap".
$ netstat -tap | grep memcached
Как видно на скриншоте выше, команда отработала, однако на экране ничего не показала, значит memcached не работает, или вообще не установлен.
Если бы утилита работала, то в результате вывода увидели слово "LISTEN" (слушает).
Посмотрим список всех портов TCP, для этого будем использовать два аргумента "at".
$ netstat -at
Для просмотра всех UDP, нужно поменять аргумент "t" на "u".
$ netstat -au
Посмотрим статистику всех портов:
$ netstat -s
Для того, чтобы непрерывно выводит информацию, поможет аргумент "-с".
$ netstat -с
Вывести на экран таблицу маршрутизации.
$ netstat -r
Одна из самых важных задач при диагностики неработоспособности программы - узнать какой порт использует утилита. Чтобы список не был слишком большим, ограничим его при помощи команды grep Подробней о команде можно посмотреть в другой статье https://vseprolinux.ru/grep
Для примера узнаем используемый порт активного соединения ssh.
netstat -ap | grep ssh
Посмотреть открытые порты.
Часто бывает так, нужно узнать какие порты открыты, для этого нужно построить список со флагом "listen".
netstat -anltp | grep "LISTEN"