Недавно мы написали статью, как проверить, открыт ли порт на удаленном сервере Linux.
Это поможет вам проверить наличие у одного сервера.
Если вы хотите проверить наличие пяти серверов, то проблем не возникает, вы можете использовать любую из следующих команд, например, nc (netcat), nmap и telnet.
Если вы хотите проверить наличие более 50 серверов, то каким будет решение?
Чтобы преодолеть эту ситуацию, я написал небольшой сценарий оболочки с помощью команды nc, которая позволит нам сканировать любое количество серверов с данным портом.
Если вы ищете сканирование одного сервера, то у вас есть несколько вариантов, чтобы узнать больше об этом.
Просто перейдите по следующему URL-адресу 3 способа проверить, открыт ли порт на удаленной системе Linux
или же по этому
4 способа узнать, какие порты прослушиваются в Linux
В этом руководстве доступны два скрипта, и оба полезны.
Оба используются для разных целей, что легко понять, прочитав заголовок.
Что такое команда nc (netcat)?
nc означает netcat.
Netcat – это простая утилита Unix, которая читает и записывает данные через сетевые соединения, используя протокол TCP или UDP.
Инструмент разработан, чтобы быть надежным «внутренним» инструментом, который может использоваться напрямую или легко управляться другими программами и скриптами.
В то же время это многофункциональный инструмент для отладки и исследования сети, поскольку он может создавать практически любые типы соединений, которые вам понадобятся, и имеет несколько интересных встроенных возможностей.
Netcat имеет три основных режима работы.
Это режим подключения, режим прослушивания и туннельный режим.
Общий синтаксис для nc (netcat):
$ nc [-options] [HostName или IP] [PortNumber]
Как проверить, открыт ли порт на нескольких удаленных серверах Linux?
Используйте следующий скрипт оболочки, если вы хотите проверить, открыт ли данный порт на нескольких удаленных серверах Linux или нет.
В моем случае мы собираемся проверить, открыт ли порт 22 на следующих удаленных серверах.
Вам нужно обновить список серверов в файле server-list.txt. Каждый сервер должен быть в отдельной строке.
# cat server-list.txt 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7
Используйте следующий скрипт для достижения этой цели.
# vi port_scan.sh #!/bin/sh for server in `more server-list.txt` do #echo $i nc -zvw3 $server 22 done
Установите права на разрешение для файла port_scan.sh.
$ chmod +x port_scan.sh
Наконец, запустите скрипт:
# sh port_scan.sh Connection to 192.168.1.2 22 port [tcp/ssh] succeeded! Connection to 192.168.1.3 22 port [tcp/ssh] succeeded! Connection to 192.168.1.4 22 port [tcp/ssh] succeeded! Connection to 192.168.1.5 22 port [tcp/ssh] succeeded! Connection to 192.168.1.6 22 port [tcp/ssh] succeeded! Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
Как проверить, открыты ли несколько портов на нескольких удаленных серверах Linux?
Используйте следующий скрипт, если вы хотите проверить несколько портов на нескольких серверах.
В моем случае мы собираемся проверить, являются ли порты 22 и 80 открытыми на данных серверах.
Обязательно замените нужные вам порты и имена серверов вместо наших.
Вам нужно обновить списки портов в файл port-list.txt. Каждый порт должен быть в отдельной строке.
# cat port-list.txt 22 80
Вам также нужно обновить список серверов в файл server-list.txt. Каждый сервер должен быть в отдельной строке.
# cat server-list.txt 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7
Используйте следующий скрипт:
# vi multiple_port_scan.sh #!/bin/sh for server in `more server-list.txt` do for port in `more port-list.txt` do #echo $server nc -zvw3 $server $port echo "" done done
Установите права на разрешение для файла multiple_port_scan.sh
$ chmod +x multiple_port_scan.sh
Запустите скрипт:
# sh multiple_port_scan.sh Connection to 192.168.1.2 22 port [tcp/ssh] succeeded! Connection to 192.168.1.2 80 port [tcp/http] succeeded! Connection to 192.168.1.3 22 port [tcp/ssh] succeeded! Connection to 192.168.1.3 80 port [tcp/http] succeeded! Connection to 192.168.1.4 22 port [tcp/ssh] succeeded! Connection to 192.168.1.4 80 port [tcp/http] succeeded! Connection to 192.168.1.5 22 port [tcp/ssh] succeeded! Connection to 192.168.1.5 80 port [tcp/http] succeeded! Connection to 192.168.1.6 22 port [tcp/ssh] succeeded! Connection to 192.168.1.6 80 port [tcp/http] succeeded! Connection to 192.168.1.7 22 port [tcp/ssh] succeeded! Connection to 192.168.1.7 80 port [tcp/http] succeeded!