Как можно проверить доступность порта на удаленной машине?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Можно использовать несколько подходов:
-
Telnet: Простой способ для проверки TCP-портов.
# Проверка доступности порта 22 на сервере 192.168.1.10 telnet 192.168.1.10 22Если соединение установлено, порт доступен. Если нет - порт закрыт или недоступен.
-
nc (netcat): Более универсальный инструмент.
# Проверка доступности TCP-порта 80 на сервере example.com nc -zv example.com 80 # Проверка доступности диапазона портов TCP 20-23 на 192.168.1.10 nc -zv 192.168.1.10 20-23 # Проверка доступности UDP-порта 53 nc -zvu example.com 53Опция
-zвыполняет нулевой ввод/вывод (сканирование),-vдля подробного вывода,-uдля UDP. -
Nmap: Мощный сканер портов.
# Сканирование конкретного TCP-порта на удаленной машине nmap -p 22 192.168.1.10 # Сканирование нескольких портов nmap -p 22,80,443 example.com # Сканирование диапазона портов nmap -p 1-100 192.168.1.10 # Сканирование UDP-портов nmap -sU -p 53 example.comNmap предоставляет более детальную информацию о состоянии порта (open, closed, filtered).
-
Python: Написание простого скрипта с использованием модуля
socket.import socket def is_port_open(host, port): """ Проверяет доступность TCP-порта на удаленном хосте. Возвращает True, если порт открыт, иначе False. """ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Установка таймаута в 1 секунду try: s.connect((host, port)) return True except (socket.timeout, ConnectionRefusedError, OSError): return False finally: s.close() # Пример использования: host = 'example.com' port = 80 if is_port_open(host, port): print(f"Порт {port} на {host} доступен.") else: print(f"Порт {port} на {host} недоступен.")
Каждый метод имеет свои преимущества и недостатки в зависимости от задачи и уровня детализации, который требуется. Для простой проверки доступности Telnet или nc часто достаточно. Для более глубокого анализа или автоматизации проверки Python-скрипт или Nmap предоставляют больше возможностей.