Я использую Nmap довольно давно и регулярно работаю с ним в качестве сетевого администратора. Сегодня я заметил кое-что довольно странное при написании сценариев функций Android Development Bridge: я могу выполнить ping и подключиться к устройству Android с помощью adb, но Nmap «обнаруживает» его только после проверки связи с устройством, а затем сканирования порта, если я повторно запускаю команда nmap, она не обнаруживает открытый порт. Вот мой результат:
ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=520 ms
А затем nmap:
nmap -Pn 192.168.0.0/26 -p 5555 | grep -e 192 -e open
Nmap scan report for 192.168.0.1
5555/tcp open freeciv
Так в первый раз это сработало, но последующие попытки сразу после этого потерпели неудачу. Это похоже на проблему ARP и проблему невидимости / сна в Android, но я никогда не видел, чтобы кеш ARP очищался так быстро. Не только это, но обратите внимание на -Pn который принудительно проверяет порт, даже если цель не отвечает на эхо-запросы.
Несколько предположений и опасений, это означает, что либо Nmap не может инициировать отклик портов некоторых устройств, либо у него короткий тайм-аут для прослушивания (обратите внимание на пинг 500 мс при первом эхо-запросе). Другое предположение состоит в том, что мое устройство, конечно, находится в режиме разработчика / режиме отладки. Спасибо всем.