Как проверить наличие открытых портов в 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 — Рассматриваются как динамические портыИспользуя следующую команду, на вашем терминале отображается список приложений и портов:

Как найти открытый порт

К счастью, вам не нужно устанавливать какое-либо программное обеспечение, чтобы сделать эту работу. Почему? Потому что мы будем использовать команду ss (так как netstat устарел) для просмотра портов прослушивания на вашем сервере. Это будет сделано полностью из командной строки, поэтому либо войдите на свой сервер, либо используйте безопасную оболочку для доступа. Когда вы получите приглашение bash, введите команду:

sudo ss -tulwn | grep LISTEN

Возможны следующие варианты:

Как найти открытый порт

-t Показать только сокеты TCP в Linux-u Показать только сокеты UDP в Linux-l Показать прослушивающие сокеты (например, TCP-порт 22 открыт SSHD-сервером)-p Список имен процессов, которые открывали сокеты-n Не разрешать имена сервисов

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

Наши открытые порты

Как видите, на этой машине имеется только несколько открытых портов (53, 22, 631, 445, 3306, 11211, 80, 8080).

Если вы не уверены, какой порт соответствует какой службе, вы всегда можете узнать это в файле /etc/services. Прочитайте этот файл с помощью команды:

less /etc/services

Как найти открытый порт

Вы должны увидеть список всех портов, доступных для Linux.

Какой порт linux соответствует какой службе

Как пользоваться ping и traceroute

Ping — это утилита, с помощью которой можно проверить доступность сервера с компьютера. Опрашиваемому узлу отправляются эхо-запросы (ICMP-пакеты Echo Request). Если до узла дошёл запрос, в ответ он должен отправить ICMP-пакет с принятыми данными и эхо-ответ (Echo Reply).

Как пользоваться ping и traceroute

Traceroute — это утилита, с помощью которой можно отследить путь запроса к серверу, а также проблемы, связанные с доступностью удалённого сервера. Утилита отправляет запрос узлу и последовательно опрашивает все маршрутизаторы на пути.

Как пользоваться ping и traceroute

Готово, мы рассмотрели, как пользоваться командой ping и как запустить tracert.

Как пользоваться ping и traceroute

Результатом работы каждой из этих команд будет несколько строк в окне терминала. Результат команды ping покажет количество переданных и потерянных пакетов при обмене с узлом, а также время приёма и передачи. Результатом traceroute будет трассировка маршрута к узлу.

Как пользоваться ping и traceroute

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

Читайте также:  Apple выпустила публичную бета-версию iOS 12.2

Как открыть порт и разрешить трафик

Чтобы ваша программа в Linux могла работать на определенном порту через ufw разрешаем передачу по нему данных:

Как открыть порт и разрешить трафик

ufw allow 51413ufw — добавление правила

Как открыть порт и разрешить трафик

Теперь при просмотре статуса брандмауэра отобразится созданное только что правило с указанием номера порта и разрешения (allow или deny)

ufw — проверка добавленного правила

Как открыть порт и разрешить трафик

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

ufw deny 51413

Как открыть порт и разрешить трафик

ufw — запрет порта

Что не так с ifconfig-ом?

Использование http proxy и socks в linux

Какие есть претензии к Net-Tools и насколько они обоснованны?

  • Использует устаревший , в то время как использует актуальный .
  • показывает вторичные IP адреса как отдельные интерфейсы.
  • не знает о существовании CIDR. Только традиционные IPv4 адреса.
  • не умеет показывать физический адрес туннельных интерфейсов , , вместо адреса сплошные нули.
  • не позволяет создавать создавать , устройства и статичные , , тунели.
  • не показывает одноранговые IP адреса, (peer IP). Можно сконфигурировать одноранговую сеть на , но не покажет удаленный IP.
Категория Netstat Nstat Разница
Ip 6 17 +11
Ip6 14 32 +18
Icmp 6 29 +23
Icmp6 25 46 +21
Tcp 10 10
Udp 7 8 +1
Udp6 4 8 +4
UdpLite 15 +15
UdpLite6 7 +7
TcpExt 48 116 +68
IpExt 11 17 +6

Все перечисленные недостатки обусловлены тем, что проект слишком долго не развивался — последний релиз был в 2011 г, а ядро и сетевой стек за это время ушли далеко вперед. Справедливости ради надо отметить, что в последнее время работа над проектом возобновилась, но вряд ли это приведет к существенным изменениям в кодовой базе.

Команда 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.

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

Как открыть порт в Linux

Данная процедура может понадобится в процессе разработки какого-либо веб-приложения, которое имеет связь с внешним сервером. Перед тем как открыть порт, нужно сначала проверить, не является ли он уже открытым. В этом поможет процедура, представленная выше.

Для открытия используется утилита iptables. Чтобы проверить, имеется ли она вообще в системе, нужно набрать в консоли команду: iptables —list

В результате отобразится вывод, говорящий о том, что утилита работает и присутствует в системе. Теперь осталось открыть порт в Linux. Для этого применяется команда:

iptables -A INPUT -p tcp -m tcp —dport 53 -j ACCEPT

Здесь ключ А означает, что нужно добавить новое правило в существующую цепочку. INPUT показывает, что открытый порт будет входящим. Ключ -p говорит, что дальше указывается тип протокола, в данном случае TCP. Dport означает порт назначения, здесь — 53. Ну и ACCEPT — разрешающие соединения.

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

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