Ответ
Проверка UDP-порта сложнее, чем TCP, из-за отсутствия handshake. Я обычно использую комбинацию инструментов.
1. Базовое сканирование с nmap:
sudo nmap -sU -p 53 192.168.1.1
Опция -sU указывает на UDP-сканирование. Результат open|filtered означает, что порт либо открыт, либо его блокирует файрвол (так как открытый UDP-порт может не отвечать).
2. Проверка с отправкой полезной нагрузки (если известен протокол):
Для DNS-порта (53) можно использовать dig или nmap со скриптом:
nmap -sU -p 53 --script dns-recursion 192.168.1.1
3. Использование netcat (nc) для отправки данных:
echo "test" | nc -u -w 2 192.168.1.1 161
Здесь -u для UDP, -w 2 — таймаут в 2 секунды. Если сервис на порту 161 (SNMP) ожидает конкретный запрос, он может ответить.
Ключевой момент: Отсутствие ответа не всегда означает, что порт закрыт. Для надежной проверки нужно либо знать ожидаемый протокол и отправить валидный запрос, либо анализировать трафик с помощью tcpdump, чтобы увидеть, приходят ли ICMP-сообщения "port unreachable" (что указывает на закрытый порт).