Назад | Перейти на главную страницу

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

Я хочу проверить, открыт или закрыт набор портов на некоторых удаленных серверах. Я провел различные дискуссии по этому поводу, и большинство людей предложили использовать nmap, nc и telnet <server-ip-address> <port-no>. Как я могу различить эти три случая:

хорошо, если вы используете команду telnet для проверки подключения порта, она покажет

  • "время ожидания соединения", если порт заблокирован брандмауэром
  • «В соединении отказано», если служба не работает / не прослушивает указанный порт, но порт доступен.
  • "connected to server_ip", если соединение успешно

Полезные утилиты:

  • 1. Telnet

  • 2.nc

  • 3.nmap

Сценарий: для проверки состояния порта tcp 80 удаленной системы

Использование :

telnet myserver.com 80 
nc -v myserver.com 80
nmap myserver.com 80 

Анализ ответа:

если вы получите тайм-аут или откажете: порт не открыт

предположим, если вы получили сообщение «Соединение отклонено»: значит порт открыт, но процесс не прослушивает

Если соединение установлено успешно: порт открыт, процесс прослушивает

Решение:

запустить / перезапустить процесс прослушивания (если в соединении отказано)

Попросите сетевую команду контролировать соединение, мы можем подтвердить, заблокировано ли оно из промежуточного сетевого брандмауэра или из брандмауэра сервера / iptables

Примечание :

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

Для проверки порта udp (например, ntp) вы можете использовать параметр ниже nc

nc -uzv yourserver.com 123

Хотя телнет или netcat может использоваться для определения доступности порта, Nmap стандартный инструмент сканирования портов.

Опция nmap по умолчанию (TCP SYN сканирование) определяет, фильтруется ли данный порт брандмауэром или нет.

nmap -sS <host> -p <port> 

Если вы хотите надежно различать открытое, закрытое и отфильтрованное состояния, используйте параметр -sY (сканирование SCTP INIT)

nmap -sY <host> -p <port>