Как использовать netstat в GNU / Linux

Попробуйте наш инструмент устранения неполадок

Netstat - очень мощная утилита, которая перечисляет все TCP- и UDP-соединения, а также соединения сокетов unix, которые в настоящее время прослушивают соединения, а также подключены в данный момент. Хотя многим домашним пользователям не обязательно беспокоиться об этом, онлайн-геймерам или всем, кто намеревается разместить какой-либо сервер в будущем, наверняка в какой-то момент придется иметь дело с портами.

Netstat также полезен для обеспечения безопасности и конфиденциальности, например, чтобы узнать, какие программы «общаются» с Интернетом.

Использование netstat может быть чрезвычайно простым процессом или может оказаться очень сложным и тяжелым, в зависимости от использования; Итак, сегодня мы рассмотрим некоторые из наиболее распространенных применений Netstat.

Как и обещал (в моей статье ' Как мне найти информацию о моей сети в Linux ? ') Я познакомлю вас с командой netstat. Эта команда - очень полезный инструмент для обнаружения сетевой информации, такой как таблицы маршрутизации, сетевые соединения, статистика интерфейса, маскарадные соединения и многоадресное членство. Но его не так просто использовать, как некоторые другие инструменты «обнаружения» (например, ifconfig). С netstat вам действительно нужно знать, что вы ищете и как это найти. Эта статья поможет вам понять именно это.

Монтаж?

К счастью, в вашем дистрибутиве должен быть NetStat команда предустановлена. Чтобы проверить это, откройте окно терминала (в любом случае вы будете использовать netstat) и введите команду какой netstat , Эта команда должна вернуть что-то вроде / Бен / NetStat , Это сообщит вам, что инструмент установлен и где находится исполняемый файл.

Основы Netstat

Основная команда netstat выглядит так:

netstat ОПЦИИ АРГУМЕНТА

Где АРГУМЕНТ - это тип семейства адресов, о котором вы хотите получить информацию, а ОПЦИИ - это необязательные параметры, которые будут указывать тип возвращаемой информации.

Поскольку netstat предлагает такое разнообразие опций, было бы лучше, если бы я сначала перечислил некоторые из наиболее полезных опций.

  • в : Показывает состояние всех сокетов и записей таблицы маршрутизации.
  • с : Отображение информации постоянно.
  • d : Показать состояние всех интерфейсов, использующих DHCP.
  • является : Показать расширенную информацию.
  • грамм : Показать информацию о членстве в группе многоадресной рассылки для IPv4 и IPv6.
  • я : Показать таблицу всех сетевых интерфейсов.
  • L : Ограничить статистику определенным интерфейсом.
  • M : Показать таблицы многоадресной маршрутизации.
  • N : Отображение сетевых адресов в виде чисел вместо символов по умолчанию.
  • п : Показать таблицы разрешения адресов.
  • п : Ограничить статистику определенным протоколом.
  • р : Показать все таблицы маршрутизации.
  • T : Показать TCP-соединения.
  • U : Показать UDP-соединения.
  • v : Использовать подробный режим для вывода.

Итак, давайте посмотрим, как их можно использовать вместе.

NetStat

Сама по себе (без параметров) эта команда распечатывает общую статистику хоста, к которому вы в данный момент подключены.

netstat -an

Эта команда отобразит все подключения к хосту, включая адреса и порты источника и назначения, и отобразит их в виде чисел.

netstat -rn

Эта команда отобразит таблицу маршрутизации для хоста в числовой форме.

netstat -r

Эта команда отобразит вашу таблицу маршрутизации для вашего хоста.

netstat -natp

Эта команда отобразит активные TCP-соединения в числовой форме.

netstat -t --listening

Это покажет вам все TCP-порты, которые прослушивает ваш хост.

netstat - статистика

Эта команда отобразит различную статистику для интерфейсов вашего хоста. Обратите внимание, что эта команда отобразит МНОГО статистики.

Как видите, эта команда отобразит довольно много информации. Вдобавок к этому вам может потребоваться пропустить эту команду через команду less, чтобы ее было легче увидеть. Эта полная команда будет выглядеть как netstat --statistics | Меньше. Использование этого способа позволит вам использовать клавиши со стрелками для прокрутки вверх и вниз по выходу.

Советы по использованию Netstat

Один из самых простых и распространенных способов использования netstat - это проверить, какие порты прослушивают

  • netstat -l

Что дает что-то вроде этого в моей недавно установленной системе Antergos

netstat -l

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

  • netstat -lt # для TCP
  • netstat -lu # для UDP
  • netstat -lx # для Unix

Или вы можете пойти на противоположный конец спектра и перечислить все подключения

  • netstat -a

Если хотите, другой вариант, который может быть полезно иметь в виду, - это использование параметра «n». Например, при использовании netstat -n или netstat -ltn все имена хостов больше не будут пытаться разрешить, и будут отображаться только IP-адреса, как в примере ниже.

netstat-ltn

Как видите, имя localhost было преобразовано в свое числовое значение после использования параметра «n».

Другой способ использования netstat - netstat -ie, «i» для интерфейсов, и «e» для «расширенного», что поможет нам получить более удобочитаемый результат.

netstat -ie # Это покажет нам список сетевых интерфейсов и информацию о каждом устройстве.

netstat ie

Дополнительные советы по Netstat

Что мы хотим сделать, так это указать netstat, чтобы он выдал нам вывод для конкретных приложений, которые прослушивают TCP-соединения. Для этого выдаем команду:

  • netstat --tcp --listening --programs

Результат этой команды будет выглядеть примерно так:

Proto Recv-Q Send-Q Локальный адрес Внешний адрес Stat PID / Program
tcp 0 0 *: ssh *: * СЛУШАТЬ 25469 / sshd
tcp 0 0 *: httpd *: * СЛУШАТЬ 26754 / httpd
tcp 0 0 localhost: ipp *: * СЛУШАТЬ -

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

маршрут

Netstat может быстро распечатать таблицу маршрутизации ядра вашей машины с помощью команды:

netstat -r

Результат этой команды будет выглядеть так:

Таблица IP-маршрутизации ядра
Шлюз назначения Genmask Флаги Окно MSS irtt Iface
192.168.1.0  *           255.255.255.0   U       0 0         0    eth0
по умолчанию 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Статистика

Это один из самых удобных инструментов netstat. С его помощью вы можете точно узнать статику для каждого протокола. Базовая структура команды:

netstat - статистика

который даст вам гораздо больше информации, чем вы хотите. Скажем, вы хотите видеть статистику только по протоколу TCP. Для этого вы можете выполнить команду:

netstat -t --statistics

Выходные данные вышеуказанной команды будут включать такую ​​информацию, как:

Tcp:
4343 активных подключения открытых
8 отверстий для пассивного подключения
5 неудачных попыток подключения
Получено 178 сбросов соединения
6 подключений установлено
Получено 59075 сегментов
60033 сегмента отправлено
76 сегментов ретранслируются
Получено 0 неверных сегментов.
303 сброса отправлено

Или вы также можете получить информацию о UDP с помощью команды:

netstat -u --statistics

Что даст вам аналогичный результат для протокола UDP.

Проявите творческий подход

Что, если вы хотите увидеть все уникальные IP-адреса, подключенные к серверу? Вы можете сделать это с помощью netstat (и некоторых других инструментов) следующим образом:

netstat -nat | awk '{print $ 5}' | вырезать -d: -f1 | sed -e '/ ^ $ / d | уник

Результат выполнения вышеуказанной команды будет зависеть от того, сколько трафика получает ваш компьютер / сервер. Но он будет включать все уникальные IP-адреса, пытающиеся подключиться к вашему серверу.

А как насчет проверки, не атакован ли ваш сервер DOS? Вы можете сделать это с помощью netstat следующим образом:
netstat -anp | grep 'tcp | udp' | awk '{print $ 5}' | вырезать -d: -f1 | сортировать | uniq -c | sort -n

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

Последние мысли

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

Теперь ваша очередь: Какую утилиту вы предпочитаете для проверки сетевой информации и почему? Дайте нам знать об этом в комментариях!

Статьи по Теме