You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用openssl批量检测域名TLSv1.3支持时脚本无自动返回问题

OpenSSL批量检测TLSv1.3脚本卡住问题解决方案

问题根因

openssl s_client 完成TLS握手后默认会保持连接等待后续交互式输入,即使通过管道传入退出指令,部分版本仍会因连接保持、输出缓冲问题卡住,无超时机制的情况下遇到不可达域名也会导致脚本僵死。

修复后可正常运行的脚本

#!/usr/bin/env bash

filename='domains.txt'
while IFS= read -r line || [[ -n "$line" ]]; do
    # 去除域名前后空白字符
    domain=$(xargs <<< "$line")
    # 跳过空行
    [[ -z "$domain" ]] && continue
    
    # 10秒超时兜底+输入重定向到空,强制命令执行完自动退出
    if timeout 10s openssl s_client -connect "$domain":443 -tls1_3 < /dev/null 2>/dev/null | grep -q 'Protocol  : TLSv1.3'; then
        echo "$domain: TLS 1.3 已支持"
    else
        echo "$domain: TLS 1.3 未支持"
    fi
done < "$filename"

关键调整说明

  • 新增timeout 10s限制单条域名检测最长耗时,超时直接终止进程,避免网络不通、域名无效等场景卡住整个脚本
  • 新增</dev/null将openssl的标准输入重定向到空设备,进程完成握手后会直接收到EOF信号自动退出,无需额外通过echo传退出指令
  • 优化读取逻辑,IFS= read -r避免域名中的特殊字符、前后空格被截断,|| [[ -n "$line" ]]兼容domains.txt末尾无换行符的场景
  • 新增空行过滤逻辑,避免文件中的空行导致执行报错
  • 输出结果增加域名前缀,方便批量检测时对应每条结果所属的域名

内容的提问来源于stack exchange,提问作者Salman Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:45:04