Я столкнулся с небольшой проблемой при использовании утилиты nc в Mac OS X, утилиты, которую я часто использую в качестве быстрого и грязного решения, чтобы проверить, открыт ли порт и какая версия запущена демоном.
На днях мы развернули новый набор компьютеров, и я хотел проверить, какая версия 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
Извините, если на этот вопрос уже был дан ответ, я искал, но не нашел решения.
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
более одного раза. - person Volomike   schedule 31.08.2015