Как использовать команды Netstat для мониторинга сети в Windows?

netstat (network statistics) — утилита командной строки выводящая на дисплей состояние TCP-соединений (как входящих, так и исходящих), таблицы маршрутизации, число сетевых интерфейсов и сетевую статистику по протоколам. Она доступна на всех unix-подобных операционных системах, включая OS X, Linux, Solaris, и BSD, также существует и в основанных на Windows NT операционных системах, начиная с Windows XP вплоть до Windows 10.

Просмотр таблицы маршрутизации в Linux

Чтобы вывести текущую таблицу маршрутизации в Linux выполните команду:

# ip route

  • default via dev enp0s3 – шлюз по умолчанию, в данном примере работающий через интерфейс enp0s3. Если для target адреса в таблице маршрутизации отсутствует маршрут, то такой пакет отправляется через данный шлюз (маршрут по умолчанию)
  • dev enp0s3 proto kernel scope link src — статический маршрут для сети через адрес , который прописан на интерфейсе
  • proto kernel – маршрут создан ядром (proto static – маршрут добавлен администратором)
  • metric – приоритет маршрута (чем меньше значение metric, тем выше приоритет). При наличии двух маршрутов с одинаковой метрикой (не стоит так делать!), ядро начинает выбирать маршруты случайным образом.

Чтобы узнать через какой интерфейс (шлюз) должен маршрутизироваться трафик к определенному IP адресу используется команда:

# ip route get

via dev enp0s3 src Вы можете использовать ваш Linux сервер с двумя и более интерфейсами как маршрутизатор или интернет-шлюз. Чтобы разрешить маршрутизацию пакетов между несколькими интерфейсами, нужно включить параметр ядра _forward = 1.

Список команд Netstat для мониторинга сети в Windows

netstat -an

Как вы можете видеть выше, эта команда будет отображать состояние всех соединений с вашего компьютера. Вы можете видеть, что локальный адрес и внешний адрес находятся в необработанном формате.

Список команд Netstat для мониторинга сети в Windows

Он отключает поиск DNS, так как на это требуется время, и часто нет необходимости выполнять поиск запрашиваемой информации.

Читайте также:  Что нового в iOS 12 получили владельцы Apple iPad

Также вы можете заметить, что команда netstat отображает текущее состояние всех соединений на устройстве. Вот некоторые примеры штатов:

  • Listening: Соединение ожидает ответа от внешнего хоста.
  • Established: Соединение уже установлено.
  • Close_wait: Соединение было закрыто с удаленной стороны, и ваш компьютер может ожидать поступления оставшихся пакетов.
  • Time_wait: локальная конечная точка завершила соединение. Соединение поддерживается так, что любые задержанные пакеты могут быть сопоставлены с соединением и обработаны соответствующим образом.

Каждая запись в этой команде показывает IP-адрес, за которым следует номер порта. Вы увидите что-то вроде этого —

Список команд Netstat для мониторинга сети в Windows

TCP :55544 :443 ESTABLISHED

Здесь TCP является протоколом, является локальным IP-адресом, 55544 является номером локального порта, является внешним IP-адресом, а 443 является номером внешнего порта, в то время как соединение уже установлено.

Если вам известны номера портов, то из приведенной выше записи вы можете выяснить, что это HTTPS-соединение с IP-адресом

Однако, если вам также интересно узнать имя внешнего адреса вместо IP-адреса, просто введите netstat -a.

Список команд Netstat для мониторинга сети в Windows

netstat -a

С помощью этой команды вы можете увидеть все активные соединения, и вместо того, чтобы просто показывать необработанный IP-адрес внешнего адреса, он также выполняет поиск DNS.

netstat -e

netstat -sp

Список команд Netstat для мониторинга сети в Windows

Эта команда netstat показывает статистику по протоколу. Если вы хотите узнать статистику по конкретному протоколу, вы можете использовать следующие варианты команд netstat, как показано ниже:

  • netstat -sp ip для статистики ipv4
  • netstat -sp ipv6 для статистики ipv6
  • netstat -sp icmp для статистики icmpv4
  • netstat -sp tcp для tcp-статистики IPv4 и т. д.

Посмотреть открытые порты с помощью команды netstat

Команда netstat — это инструмент командной строки, который используется для проверки открытых портов TCP и UDP вместе с другими атрибутами. Чтобы в Linux проверить открытые порты, введите команду: $ netstat -pnltu Пример вывода Давайте подробнее рассмотрим параметры команды: p — показывает идентификатор услуги или название программы; n — отображает числовой номер запущенного порта, например, 3306 для mysqld и 22 для sshd; l —  показывает прослушиваемые сокеты; t — показывает TCP-соединения; u — показывает UDP-соединения.

Утилита MTR

MTR – это альтернатива программе traceroute. Объединяя функции ping и traceroute, mtr позволяет постоянно опрашивать удаленный сервер и отслеживать изменения задержки и производительности с течением времени.

Синтаксис утилиты также несложный:

$ mtr опции адрес_узла

Например:

$ mtr

Вывод похож на traceroute, но mtr имеет существенное преимущество – ее вывод постоянно обновляется. Это позволяет собирать средние показатели, а также отслеживать тенденции и изменения производительности сети. Как и с утилитой ping, mtr будет работать бесконечно. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию <Ctrl+C>.

Пояснение вывода:

host — имя хоста; Loss% — процент потерь пакетов; Snt — количество отправленных пакетов; Last — время задержки последнего отправленного пакета в миллисекундах; Avg — среднее время задержки; Best — минимальное время задержки; Wrst — максимальное время задержки; StDev — среднеквадратичное отклонение времени задержки;

Полезные опции:

-c <число> — Количество циклов проверки (количество отправленных пакетов по сути); -r — Режим отчета. Программа выполнит указанное при помощи параметра -c количество циклов, выведет отчет и завершит свою работу; -w — Режим расширенного отчета. Результат такой же, как и при использовании опции -r, но длинные имена хостов обрезаться не будут; -s <количество-байт> — Установить размер пакетов для отправки; -n — Не использовать DNS для разрешения имен хостов и отображать вместо них IP-адреса; -o «список-полей» — Отображать только указанные поля и в таком порядке, в котором они были указаны; -p — Выводить информацию построчно, без перерисовки экрана, с разделением полей пробелом. Этот формат удобен, если вы используете какую-то дополнительную программу-парсер или скрипт для анализа, которому передаются данные. -a <IP-адрес> — Указать адрес интерфейса, с которого будут отправляться пакеты; -i <число-секунд> — Интервал между отправляемыми запросами; -u Использовать протокол UDP для отправки пакетов; -4 Использовать только IPv4; -6 Использовать только IPv6.

Читайте также:  Анимация на Андроид – как отключить для повышения быстродействия

Настройка маршрутов в Linux

Вы можете настраивать таблицу маршрутизации с помощью команды ip. Например, чтобы изменить маршрут по умолчанию достаточно выполнить:

ip route add default via

Так вы можете добавить маршрут для любого IP адреса, например, для :

sudo ip route add via

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

Настройка маршрутов в Linux

В операционных системах семейства Red Hat используются конфигурационные файлы /etc/sysconfig/network-scripts/route-ethX. Каждый файл может описывать несколько маршрутов, например:

GATEWAY= NETMASK=255.0.0.0 IPADDR=

Здесь gateway — шлюз по умолчанию для этого интерфейса, netmask — маска сети, а ipaddr — ip адрес интерфейса. В Debian и основанных на нем дистрибутивах можно настроить маршруты в файле /etc/network/interfaces. Здесь команда route добавляется в секцию iface. Например:

up route add -net netmask 255.0.0.0 gw

С помощью опции -net мы указываем целевую сеть, netmask — это маска сети, а gw — шлюз. Все очень просто. Теперь добавленные маршруты останутся даже после перезагрузки.