fix: 大规模扫描全局超时过短导致提前终止 (#588)

4 万 IP 全端口扫描默认 -gt 180s 完全不够用,3 分钟后报
"解析目标失败: context deadline exceeded" 误导用户。

1. 自适应全局超时:用户未显式指定 -gt 时,根据端口数和是否有
   hosts 文件自动调大超时(最高 24h),并输出调整日志
2. 修正超时错误信息:context deadline exceeded 不再包装为
   "解析目标失败",改为提示用户调大 -gt 或设为 0 禁用
This commit is contained in:
ZacharyZcR
2026-06-27 16:42:32 +08:00
parent a3ccc2827b
commit 1980504007
8 changed files with 64 additions and 2 deletions
+5
View File
@@ -88,6 +88,11 @@ func (s *AliveScanStrategy) performAliveScan(ctx context.Context, info common.Ho
for {
hosts, err := iter.NextBatch(ctx, targetHostBatchSize(session.Config))
if err != nil {
if ctx.Err() != nil {
session.LogError(i18n.Tr("global_timeout_exceeded",
int(session.Config.GlobalTimeout.Seconds())))
return
}
session.LogError(i18n.Tr("parse_target_failed", err))
return
}