У меня возникла небольшая проблема при использовании утилиты nc в Mac OS X, которая часто используется в качестве быстрого и грязного решения, чтобы проверить, открыт ли порт и какая версия запускается.nc (netcat) на Mac OS X 10.8.4 застрял
Мы на днях развернули новый набор компьютеров, и мне захотелось проверить, какая версия sshd была запущена, не покидая моего стула.
Это команда я побежал, и полученный результат:
$ for i in {183..200}; do echo "hello" | nc -n -w 2 -v 10.120.113.$i 22; done
Connection to 10.120.113.183 22 port [tcp/*] succeeded!
SSH-2.0-OpenSSH_5.9
Protocol mismatch.
nc: connect to 10.120.113.184 port 22 (tcp) failed: Connection refused
^C
$
Он находит первую машину на 183 и возвращает версию демона, он не смотрит как SSHD запущенного на 184, но когда она попадает 185 он просто останавливается, и я должен убить его с помощью ctrl + c.
Как я понял, справочная страница для nc должна быть отключена при использовании переключателя '-w', но это не так. Это та же проблема с нескольких машин.
Это просто случай с неправильным пониманием страницы руководства? Есть ли другой способ сделать nc тайм-аут после X секунд, если не получите никакого ответа? Есть ли другой способ сделать это, используя встроенные инструменты в Mac OS X?
Я также попытался запустить nc только с переключателем '-z' с теми же результатами. Машины размещены в нашем производстве, поэтому мне не разрешено устанавливать какие-либо сторонние приложения, такие как nmap.
Platform: Mac OS X 10.8.4
Executable: /usr/bin/nc
Извините, если на этот вопрос был дан ответ, я искал, но не смог найти решение этого вопроса.
Я думаю, что есть ошибка в нк на Mac. У меня есть Йосемити. Когда я сравниваю ту же команду в Linux для проксирования DNS, Linux возвращает ответ снова и снова, как и следовало ожидать. На Mac он возвращает первый ответ, а затем замялся, потому что я предполагаю, что он не видит конца передачи. Посмотрите сами: 'mkfifo/tmp/fifo; nc -lu 127.0.0.1 53 tmp/fifo | nc -u 8.8.4.4 53>/tmp/fifo', а затем в другом окне терминала, выполните 'nslookup example.com 127.0.0.1' более одного раза. – Volomike