Как проверить наличие открытых портов в Linux

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

Что такое порт?

Порт представляет собой 16-битное число ( от 0 до 65535), чтобы помочь идентифицировать данное приложение или процесс на Linux, операционной системы (Unix). Порт отличает одно приложение от другого в системе приведены различные категории портов:0 — 1023 — Упоминаются как хорошо известные порты1024 — 49151 — Относится к зарегистрированным портам49152 — 65535 — Рассматриваются как динамические портыИспользуя следующую команду, на вашем терминале отображается список приложений и портов:

Встроенные инструменты контроля портов

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

Просмотр портов вместе с именами процессов

Во-первых, вам нужно открыть командную строку в режиме администратора. Нажмите «Поиск», а затем введите «командная» в поле поиска. Когда вы увидите «Командная строка» в результатах, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».

В командной строке введите следующий текст и нажмите «Ввод»:

netstat -ab

После того, как вы нажмете Enter, результаты могут занять минуту или две для полного отображения, поэтому будьте терпеливы. Прокрутите список, чтобы найти порт (который указан после двоеточия справа от локального IP-адреса), и вы увидите имя процесса, использующего этого порт.

Если вы хотите сделать это немного проще, вы также можете выгрузить результаты команды в текстовый файл. Затем вы можете просто найти номер порта в текстовом файле.

Здесь, например, вы можете видеть, что порт 62020 связан процессом  Skype – это приложение для общения между пользователями, поэтому мы можем предположить, что этот порт фактически связан процессом, который регулярно проверяет наличие обновлений для приложения.

Просмотр портов вместе с идентификаторами процессов

Если имя процесса для номера порта, который вы просматриваете, затрудняет определение того, какому приложению он соответствует, вы можете попробовать версию команды, которая показывает идентификаторы процессов (PID), а не имена. Введите следующий текст в командной строке, а затем нажмите Enter:

netstat -aon

Читайте также:  Установка и настройка почтового клиента Mozilla Thunderbird

В столбце справа справа перечислены PID, поэтому просто найдите тот, который связан с портом, который вы пытаетесь устранить.

Затем откройте диспетчер задач, щелкнув правой кнопкой мыши любое открытое пространство на панели задач и выбрав «Диспетчер задач».

Если вы используете Windows 8 или 10, перейдите на вкладку «Подробности» в диспетчере задач. В более старых версиях Windows вы увидите эту информацию на вкладке «Процессы». Отсортируйте список процессов по столбцу «ИД процесса» и найдите PID, связанный с портом, который вы исследуете. Возможно, вы сможете узнать больше о том, какое приложение или служба использует указанный порт, посмотрев столбец «Описание».

Если нет, щелкните процесс правой кнопкой мыши и выберите «Открыть расположение файла». Расположение файла, скорее всего, даст вам подсказку о том, какое приложение задействовано.

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

netstat -an

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

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

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

Также вы можете заметить, что команда 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 и т. д.

Как добавить или удалить статический маршрут?

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

Читайте также:  Как изменить hostname в Debian | Ubuntu | Linux ?

# ip route add via

Таким образом, мы добавим маршрут для IP сети через шлюз

Формат команды ip route очень похоже на синтаксис в Cisco IOS. Здесь также можно исопльзовать сокращений, например вместо ip route add можно написать ip pro ad.

Также можно добавить отдельный маршрут для одного IP адреса (хоста):

# ip route add via

Можно сделать аналог null route маршрута в Cisco (ip route null0), пакеты в такую сеть удаляются по причине No route to host:

# ip route add blackhole

Как добавить или удалить статический маршрут?

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

Чтобы удалить созданный вручную маршрут, выполните:

# ip route del

Как видите, маршрут удален из таблицы маршрутизации.

Чтобы добавить постоянный маршрут, нужно создать файл для этого маршрута, либо добавить правило в файл (выполняется при загрузке сервера).

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

# ip a

В моем случае, интерфейс enp0s3.

Более подробная статья о настройке сетевых интерфейсов в CentOS.

Далее открываем следующий файл:

# nano /etc/sysconfig/network-scripts/route-enp0s3

И добавляем туда строку с маршрутом:

via

После добавления маршрута в файл нужно перезапустить сервис network:

# service network restart

Как добавить или удалить статический маршрут?

После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.

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

# nano /etc/

И укажите команду добавления маршрута:

# ip route add via

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

Диагностика сети при помощи MTR

MTR — программа, которая сочетает функционал команд traceroute и ping в одном инструменте. MTR проверяет соединение между локальной системой и указанным узлом (IP или доменом). Программа отправляет запрос к узлу, как команда ping, и показывает маршрут пакета, как traceroute.

Диагностика сети при помощи MTR
Диагностика сети при помощи MTR
Диагностика сети при помощи MTR

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

Диагностика сети при помощи MTR
Диагностика сети при помощи MTR
Диагностика сети при помощи MTR

Команда Netstat

Netstat – отображает активные подключения TCP, портов, прослушиваемых компьютером, статистики Ethernet, таблицы маршрутизации IP, статистики IPv4 (для протоколов IP, ICMP, TCP и UDP) и IPv6 (для протоколов IPv6, ICMPv6, TCP через IPv6 и UDP через IPv6). Запущенная без параметров, команда nbtstat отображает подключения TCP.

Синтаксис

netstat [-a] [-e] [-n] [-o] [-p протокол] [-r] [-s] [интервал] Параметры команды Netstat

Netstat -a

Вывод всех активных подключений TCP и прослушиваемых компьютером портов TCP и UDP.

Читайте также:  Как в 3 клика сделать почту на сайте: инструкция

Netstat -e

Команда Netstat

Вывод статистики Ethernet, например количества отправленных и принятых байтов и пакетов. Этот параметр может комбинироваться с ключом -s.

Netstat -n

Вывод активных подключений TCP с отображением адресов и номеров портов в числовом формате без попыток определения имен.

Netstat -o

вывод активных подключений TCP и включение кода процесса (PID) для каждого подключения. Код процесса позволяет найти приложение на вкладке Процессы диспетчера задач Windows. Этот параметр может комбинироваться с ключами -a, -n и -p.

Netstat -p протокол

Вывод подключений для протокола, указанного параметром протокол. В этом случае параметр протокол может принимать значения tcp, udp, tcpv6 или udpv6. Если данный параметр используется с ключом -s для вывода статистики по протоколу, параметр протокол может иметь значение tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6 или ipv6.

Netstat -s

Вывод статистики по протоколу. По умолчанию выводится статистика для протоколов TCP, UDP, ICMP и IP. Если установлен протокол IPv6 для Windows XP, отображается статистика для протоколов TCP через IPv6, UDP через IPv6, ICMPv6 и IPv6. Параметр -p может использоваться для указания набора протоколов.

Netstat -r

Вывод содержимого таблицы маршрутизации IP. Эта команда эквивалентна команде route print.

интервал

Команда Netstat

Обновление выбранных данных с интервалом, определенным параметром интервал (в секундах). Нажатие клавиш CTRL+C останавливает обновление. Если этот параметр пропущен, netstat выводит выбранные данные только один раз.

Netstat /?

Отображение справки в командной строке.

Примечания

  • Параметрам, используемым с данной командой, должен предшествовать дефис (), а не косая черта (/).
  • Команда Netstat выводит статистику для следующих объектов.

Имя протокола (TCP или UDP).

IP-адрес локального компьютера и номер используемого порта. Имя локального компьютера, соответствующее IP-адресу и имени порта, выводится только в том случае, если не указан параметр -n. Если порт не назначен, вместо номера порта будет выведена звездочка (*).

IP-адрес и номер порта удаленного компьютера, подключенного к данному сокету. Имена, соответствующие IP-адресу и порту, выводятся только в том случае, если не указан параметр -n. Если порт не назначен, вместо номера порта будет выведена звездочка (*).

Указание состояния подключения TCP. Возможные значения:

CLOSE_WAIT

CLOSED

ESTABLISHED

Команда Netstat

FIN_WAIT_1

FIN_WAIT_2

LAST_ACK

LISTEN

SYN_RECEIVED

SYN_SEND

TIMED_WAIT

  • Эта команда доступна, только если в свойствах сетевого адаптера в объекте Сетевые подключения в качестве компонента установлен протокол Интернета (TCP/IP).

Примеры Netstat

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

netstat -e -s

Для вывода статистики только по протоколам TCP и UDP введите следующую команду:

Команда Netstat

netstat -s -p tcp udp

Для вывода активных подключений TCP и кодов процессов каждые 5 секунд введите следующую команду:

nbtstat -o 5

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

nbtstat -n -o