我在Mac OS X上使用nc实用程序时遇到了一个小问题,我经常使用这个实用程序作为快速而脏的解决方案来检查端口是否打开以及守护程序运行的版本.
我们前几天部署了一套新的计算机,我想验证它们运行的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
$
Run Code Online (Sandbox Code Playgroud)
它找到183上的第一台机器并返回守护程序版本,它看起来不像sshd在184上运行,但是当它达到185时它就会停止并且我必须用ctrl + c来杀死它.
正如我已经理解了nc的手册页,它应该在使用'-w'开关时超时,但事实并非如此.来自多台机器的问题也是如此.
这只是我误解手册页的情况吗?如果没有收到任何回复,还有其他方法可以在X秒后使nc超时吗?有没有其他方法可以使用Mac OS X中的内置工具执行此操作?
我也尝试使用'-z'开关运行nc,结果相同.机器放在我们的生产中,因此我不允许安装任何第三方应用程序,如nmap.
Platform: Mac OS X 10.8.4
Executable: /usr/bin/nc
Run Code Online (Sandbox Code Playgroud)
对不起,如果这个问题已经被回答,我搜索但找不到任何解决方案.