我在 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
$
它在 183 上找到第一台机器并返回守护程序版本,它看起来不像 sshd 在 184 上运行,但当它到达 185 时它就停止了,我必须用 ctrl+c 杀死它。
据我了解 nc 的手册页,使用“-w”开关时应该会超时,但事实并非如此。多台机器都有同样的问题。
这只是我误解了手册页的情况吗?
如果没有收到任何响应,是否有其他方法可以使 nc 在 X 秒后超时?
有没有其他方法可以使用 Mac OS X 中的内置工具来执行此操作?
我还尝试仅使用“-z”开关运行 nc,结果相同。
这些机器放置在我们的生产中,因此我不允许安装任何 3rd 方应用程序,例如 nmap。
Platform: Mac OS X 10.8.4
Executable: /usr/bin/nc
抱歉,如果这个问题已得到解答,我进行了搜索,但找不到任何解决方案。
我相信您正在寻找-G
选项。从手册页:
-G 并发超时
TCP 连接超时(以秒为单位)。
-w
用于设置超时时间after联系。-G
选项用于设置超时before联系。这应该会给你你想要的
nc -n -G 2 -v xxx.xxx.xxx.xxx 22
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)