是否可以在 openssl 的 s_client 命令上设置超时?

是否可以在 openssl 的 s_client 命令上设置超时?

我有一个脚本,它使用 openssl 的 s_client 命令来为大量主机提取证书。由于防火墙的原因,其中一些主机不可避免地无法访问。是否可以将 s_client 超时设置为比默认值短得多的值?我在手册页/帮助文件中没有看到这个。

这个或者某种包装命令将在 X 秒后自动终止 openssl -s_client。

如果可能的话,我不愿意预先测试主机/端口的可用性。

答案1

使用 GNU coreutils 包中的超时命令。

timeout <time> <command>

或者,看看对此存档博客文章仅针对 bash 的答案。

答案2

对于第一个循环:while read servername;do

超时 2 bash -c "/dev/tcp/$servername/$Port" && echo 端口打开。 || echo 端口关闭。

完毕

但开放端口比较困难:timeout 1 openssl s_client -showcerts -connect $servername:$Port

相关内容