Как установить netstat
Перейти к содержимому

Как установить netstat

  • автор:

�� Как установить команду netstat на Linux

Мануал

Автор cryptoparty На чтение 2 мин Опубликовано 16.04.2021

Команда netstat создает выводы, показывающие состояние сети и статистику протоколов.

Это кроссплатформенная утилита, доступная для систем Linux, macOS или Windows.

Она очень полезна для устранения неполадок конфигурации сети и проблем.

Идентификация приложения с помощью портов в системе.

В последних версиях операционных систем Linux этот инструмент установлен по умолчанию.

Но некоторые минимальные установки могут не содержать этого инструмента в вашей системе.

В этом случае это руководство поможет вам установить команду netstat в системе Linux.

Как установить команду netstat в Linux

Обычно пакет net-tools предоставляет команду netstat для большинства популярных дистрибутивов Linux.

Используйте одну из приведенных ниже команд, чтобы установить команду netstat в вашей системе.

Установка netstat в системах Fedora и CentOS/RHEL 8: используйте диспетчер пакетов командной строки dnf для установки netstat из репозиториев пакетов по умолчанию.

sudo dnf install net-tools 

Установка netstat в системах CentOS/RHEL 7: для более старых версий систем на основе Redhat используйте диспетчер пакетов yum для установки инструмента netstat.

sudo yum install net-tools 

Как установить netstat в Debian/Ubuntu: Используйте менеджер пакетов apt для установки netstat в системах Ubuntu и Debian из официальных репозиториев.

sudo apt update && sudo apt install net-tools 

Установка netstat в системах Arch:

sudo pacman -S netstat-nat 

Установка netstat в OpenSuse:

sudo zypper install net-tools 

Использование команды netstat на Linux

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

Лично я использую эту команду для отображения имени PID/программы для сокетов или сокетов слушающего сервера в системе.

Моя часто используемая команда:

netstat -tulpn 

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

Благодаря этому легче определить, присутствует ли какая-либо служба на каком-либо порту или нет.

  • -t – используется для вывода TCP-соединений
  • -u – используется для вывода UDP-соединений
  • -l – Вывести все сокеты слушающего сервера
  • -p – Вывести имена PID/программы для сокетов
  • -n – не резолвить имена из IP-адресов

Заключение

В этом руководстве описывается, как установить отсутствующую команду netstat в вашей системе Linux.

Дополнительно поделился своим любимым вариантом использования команды netstat.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!

Добавить комментарий Отменить ответ

Поддержать нас

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (110)
  • Книги (27)
  • Мануал (2 359)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (831)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (116)
  • Статьи (360)
  • Философия (124)
  • Юмор (18)

Наш Telegram

Социальные сети
Поделиться

Anything in here will be replaced on browsers that support the canvas element

  • �� Каковы различные форматы сертификатов? 27.10.2023

Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]

Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]

Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. �� Почему процессы в контейнерах […]

Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]

Давайте поговорим о классификации вредоносных программ. Когда антивирусная программа или средство защиты от вредоносного ПО обнаруживает что-то потенциально вредоносное, она использует определенный формат, чтобы помочь вам или другим специалистам понять, с какой именно угрозой вы имеете дело. Формат может выглядеть примерно так: Type:Platform/Family.Variant!Suffixes Это не всегда будет выглядеть именно так, поскольку, как вы помните, не […]

Как установить команду netstat в Linux

анализ сетевой статистики. Он отображает всю статистику, такую как открытые порты и соответствующие адреса в хост-системе, таблицу маршрутизации и маскирующие соединения.

В этой статье мы расскажем, как установить команду netstat в разных дистрибутивах Linux.

Как установить команду netstat в Linux

Пакет, содержащий netstat, называется net-tools. В современных системах утилита netstat предустановлена, и ее не нужно устанавливать.

Однако в старых системах вы, скорее всего, столкнетесь с ошибкой при запуске команды netstat. Поэтому, чтобы установить netstat в дистрибутивах Linux, выполните команду.

# yum install net-tools [On CentOS/RHEL] # apt install net-tools [On Debian/Ubuntu] # zypper install net-tools [On OpenSuse] # pacman -S net-tools [On Arch Linux]

После установки выполните приведенную ниже команду, чтобы проверить установленную версию netstat.

# netstat -v

Как использовать команду netstat в Linux

Вы можете вызвать команду netstat в любом из дистрибутивов Linux, чтобы получить различную статистику по вашей сети.

1. Просмотр таблицы сетевой маршрутизации

Вы используете флаг -r , чтобы отобразить таблицу сетевой маршрутизации, чтобы получить что-то похожее на вывод ниже.

# netstat -nr

Параметр -n заставляет netstat печатать адреса, разделенные точками, вместо использования символических имен сетей. Этот параметр полезен для предотвращения поиска адресов по сети.

2. Показать статистику сетевого интерфейса

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

# netstat -ai

3. Показать сетевые подключения

Командная утилита netstat поддерживает параметры, которые отображают активные или пассивные сокеты с помощью параметров -t , -n и -a . Флаги показывают сокеты подключения RAW, UDP, TCP или UNIX. Добавив опцию -a , он будет сеять готовые к подключению сокеты.

# netstat -ant

4. Показать сетевые службы

Чтобы просмотреть список служб, их текущее состояние и соответствующие им порты, выполните команду.

# netstat -pnltu

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

Все права защищены. © Linux-Console.net • 2019-2023

Sysadminium

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

Оглавление скрыть

Об утилите

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

Вообще эта утилита считается устаревшей и была заменена на утилиту ss, которую мы рассмотрим в следующей статье.

Получить справку об этой утилите можно здесь.

Установка netstat

Эта утилита входит в пакет net-tools, поэтому необходимо установить именно этот пакет, чтобы у вас в системе появилась утилита netstat. В пакет net-tools также включены следующие инструменты: arp, ifconfig, rarp, nameif и route. Все они считаются устаревшими, но иногда используются по привычке системного администратора.

И так, чтобы установить net-tools выполните:

$ sudo apt install net-tools

Работа утилиты

Если мы выполним netstat без дополнительных опций, то увидим активные сетевые соединения (Active Internet connections) и активные соединения с помощью сокетов (Active UNIX domain sockets).

$ netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 216 192.168.0.35:ssh pc-adm:64743 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 799 /run/user/1000/systemd/notify unix 3 [ ] DGRAM 11402 /run/systemd/notify unix 2 [ ] DGRAM 11418 /run/systemd/journal/syslog unix 7 [ ] DGRAM 11424 /run/systemd/journal/dev-log unix 7 [ ] DGRAM 11426 /run/systemd/journal/socket unix 3 [ ] STREAM CONNECTED 12270 /run/systemd/journal/stdout ***

Выводимая информация для интернет соединений и соединений с помощью сокетов отличается.

Выводимые поля для интернет соединений:

  • Proto — протокол (tcp, udp).
  • Recv-Q — количество байтов, помещённых в буфер приёма TCP/IP, но не переданных приложению. Если это число высокое, то нужно проверить работоспособность приложения, которое работает с данным портом.
  • Send-Q — количество байтов, помещённых в буфер отправки TCP/IP, но не отправленных, или отправленных, но не подтверждённых. Высокое значение может быть связано с перегрузкой сети сервера.
  • Local Address — локальный адрес сервера. В обычных соединения, это адрес сервера на который пришло соединение. В прослушиваемых портах (LISTEN) — это диапазон адресов. Так 0.0.0.0:port — значит подключаться можно ко всем адресам сервера, а 192.168.0.35:port — значит подключаться можно только к этому адресу сервера.
  • Foreign Address — адрес второй стороны. В обычных соединения, это адрес с которого пришло соединение. В прослушиваемых портах (LISTEN) — это диапазон адресов. Так 0.0.0.0:* — значит подключаться можно с любых адресов и с любых портов, а например 192.168.0.50:* — значит подключаться можно только с этого адреса и с любых портов.
  • State — состояние подключения, или прослушивания.

Выводимые поля для соединений с помощью сокетов:

  • Proto — протокол (unix);
  • RefCnt — счётчик подключенных к этому сокету процессов;
  • Flags — флаги, я их не буду рассматривать;
  • Type — тип сокета
    • DGRAM — работает без установки соединения;
    • STREAM — с предварительной установкой соединения;
    • LISTENING — сокет ожидает запроса на подключение;
    • CONNECTED — сокет подключен;
    • DISCONNECTING — сокет отключен;
    • (пусто) — сокет не подключен к другому.

    Примеры работы и дополнительные опции

    Активные подключения и прослушиваемые порты

    Если утилита netstat без опций выводила все активные подключения, то с опцией -a она дополнительно выведет все прослушиваемые порты.

    Дополнительно можно отфильтровать информацию по типу протокола:

    • -t — выводить только tcp;
    • -u — выводить только udp;
    • -x — выводить только сокеты.

    Эти опции можно совмещать, например следующая команда покажет все активные подключения и прослушиваемые порты только для tcp и udp соединений:

    $ netstat -atu Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 268 192.168.0.35:ssh pc-adm:64743 ESTABLISHED tcp6 0 0 [::]:http [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 [::]:https [::]:* LISTEN

    Из вывода выше мы видим что у нас есть tcp соединения и нет udp. В tcp соединениях видно одно в состоянии ESTABLISHED, это я подключен к серверу по протоколу ssh. Остальные имеют состояние LISTEN — это прослушиваемые порты. Наш сервер слушает следующие порты: ssh (22 порт), https (443 порт), http (80 порт).

    Только прослушиваемые порты или сокеты

    Перечислить все прослушиваемые порты, в том числе и сокеты можно с помощью опции -l. Здесь вы также можете ограничить вывод tcp, udp или linux сокетами.

    Например, следующая команда выведет все прослушиваемые порты и сокеты, так как я не ограничиваю вывод определённым протоколом:

    $ netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp6 0 0 [::]:http [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 [::]:https [::]:* LISTEN Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 211 /run/systemd/journal/io.systemd.journal unix 2 [ ACC ] STREAM LISTENING 802 /run/user/1000/systemd/private unix 2 [ ACC ] STREAM LISTENING 811 /run/user/1000/gnupg/S.dirmngr unix 2 [ ACC ] STREAM LISTENING 813 /run/user/1000/gnupg/S.gpg-agent.browser unix 2 [ ACC ] STREAM LISTENING 815 /run/user/1000/gnupg/S.gpg-agent.extra unix 2 [ ACC ] STREAM LISTENING 817 /run/user/1000/gnupg/S.gpg-agent.ssh unix 2 [ ACC ] STREAM LISTENING 819 /run/user/1000/gnupg/S.gpg-agent unix 2 [ ACC ] STREAM LISTENING 11882 /run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 11405 /run/systemd/private unix 2 [ ACC ] STREAM LISTENING 11407 /run/systemd/userdb/io.systemd.DynamicUser unix 2 [ ACC ] STREAM LISTENING 11408 /run/systemd/io.system.ManagedOOM unix 2 [ ACC ] STREAM LISTENING 11420 /run/systemd/fsck.progress unix 2 [ ACC ] STREAM LISTENING 11428 /run/systemd/journal/stdout unix 2 [ ACC ] SEQPACKET LISTENING 11430 /run/udev/control

    Получение статистики

    Для получения статистики по сетевым протоколам нужно использовать опцию -s. Здесь также можно ограничивать вывод по определённым протоколам, но нельзя использовать опцию -x.

    Например следующая команда выведет статистику по протоколу udp:

    $ netstat -su Udp: 314 packets received 0 packets to unknown port received 0 packet receive errors 317 packets sent 0 receive buffer errors 0 send buffer errors IgnoredMulti: 3856905 UdpLite: IpExt: InBcastPkts: 3856905 InOctets: 424191584 OutOctets: 6605615 InBcastOctets: 229159529 InNoECTPkts: 4157300 InECT0Pkts: 10507

    Формат вывода

    Утилита netstat, используя dns, пытается присвоить имена ip-адресам. Так, какой-нибудь, условный компьютер, с адресом 192.168.0.14 будет назван как pc-adm. Мы можем выключить такое именование хостов используя опцию -n.

    А ещё утилита netstat именует стандартные порты в имена протоколов, например порт 22 будет назван ssh, 80 — http, 443 — https. Но мы можем выключить это поведение используя опцию -nn.

    Также эта утилита умеет выводить имена процессов, которые обслуживают подключения, или слушают порты. Для этого нужно использовать опцию -p. Но чтобы мы увидели названия процессов, нужно запускать утилиту netstat используя sudo.

    • netstat -ltnnp — вывести только прослушиваемые tcp порты. При этом не переводить ip адреса в имена хостов и не переводить номера портов в названия протоколов. Дополнительно вывести название процессов.
    • netstat -atunnpвывести все порты (прослушиваемые и активные). При этом выводить только сетевые порты (tcp и udp), а не сокеты. Не переводить ip адреса в имена хостов и не переводить номера портов в имена протоколов. А также вывести названия процессов участвующих в соединениях.

    Пример последней команды показан здесь:

    $ sudo netstat -atnnp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 402/sshd: /usr/sbin tcp 0 52 192.168.0.35:22 192.168.0.14:64743 ESTABLISHED 4121/sshd: alex [pr tcp6 0 0 . 80 . * LISTEN 403/apache2 tcp6 0 0 . 22 . * LISTEN 402/sshd: /usr/sbin tcp6 0 0 . 443 . * LISTEN 403/apache2

    Итог

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

    Рассмотрели следующие опции:

    • -a — посмотреть все порты (прослушиваемые и используемые в подключении);
    • -l — посмотреть только прослушиваемые порты;
    • -t — выводить только tcp порты;
    • -u — выводить только udp порты;
    • -x — выводить информацию только по unix сокетам;
    • -p — к выводу добавить информацию о процессе (имя и pid процесса);
    • -n — отключить преобразование ip адреса в имя компьютера;
    • -nn — отключить преобразование номера порта в имя протокола;
    • -s — отобразить статистику по различным сетевым протоколам.

    Утилита NETSTAT

    Полезная команда и утилита одновременно, которая называется netstat, позволяет просматривать информацию о соединениях системы по протоколам UDP и TCP.

    Команду можно запустить так, чтобы она выполнялась каждые n секунд и позволяла получать следующую информацию в табличном формате:

    • Название протокола (TCP или UDP)
    • Локальный адрес IP и номер порта, которые используются соединением через сокет
    • Удаленный адрес IP (адрес назначения) и номер порта, который используется соединением через сокет
    • Состояние соединения (Ожидающее (Listening)), Установленное (Established)) и т.д.)

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

    1. При попытке установить соединение клиент отправляет сообщение SYN серверу.

    2. Сервер отвечает собственным сообщением SYN и подтверждением (ACK).

    3. После этого клиент отправляет сообщение ACK обратно на сервер, завершая процесс установки соединения.

    Процесс разрыва соединения состоит из следующих этапов:

    1. Клиент сообщает «Я закончил», отправляя сообщение FIN серверу. На этом этапе клиент только принимает данные от сервера, но сам ничего не отправляет.

    2. После этого сервер отправляет сообщение ACK и отправляет собственное сообщение FIN клиенту.

    3. После этого клиент отправляет сообщение ACK серверу, подтверждая запрос сервера FIN.

    4. При получении сообщения ACK от клиента сервер закрывает соединение.

    Понимание этапов процесса установки и разрыва соединения позволяет более прозрачно интерпретировать состояния соединений в выводе команды netstat. Соединения в списке могут находиться в следующих состояниях.

    • CLOSE_WAIT — указывает на пассивную фазу закрытия соединения, которая начинается после получения сервером сообщения FIN от клиента.
    • CLOSED — соединение прервано и закрыто сервером.
    • ESTABLISHED — клиент установил соединение с сервером, получив от сервера сообщение SYN.
    • FIN_WAIT_1 — клиент инициировал закрытие соединения (отправил сообщение FIN).
    • FIN_WAIT_2 — клиент получил сообщения ACK и FIN от сервера.
    • LAST_ACK — сервер отправил сообщение FIN клиенту.
    • LISTEN — сервер готов принимать входящие соединения.
    • SYN_RECEIVED — сервер получил сообщение SYN от клиента и отправил ему ответ.
    • TIMED_WAIT — клиент отправил сообщение FIN серверу и ожидает ответа на это сообщение.
    • YN_SEND — указанное соединение активно и открыто.

    Теперь все, что необходимо знать о команде netstat, это синтаксис ее вызова:

    netstat [-a] [-e] [-n] [-o] [-p ] [-r] [-s] [интервал]

    Параметры команды netstat приводятся далее.

    Параметры команды netstat

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *