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
+3 -1
View File
@@ -39,6 +39,7 @@ type FlagVars struct {
TimeoutSec int64 // 秒,需转换为 time.Duration
TimeoutExplicit bool
GlobalTimeout int64
GlobalTimeoutExplicit bool
DisablePing bool
DisableTcpProbe bool
DisableSubnetProbe bool
@@ -171,7 +172,8 @@ func BuildConfigFromFlags(fv *FlagVars) *Config {
DefaultMap: cloneStringSlice(config.DefaultProbeMap),
// 全局超时
GlobalTimeout: time.Duration(fv.GlobalTimeout) * time.Second,
GlobalTimeout: time.Duration(fv.GlobalTimeout) * time.Second,
GlobalTimeoutExplicit: fv.GlobalTimeoutExplicit,
// SOCKS5代理端口
Socks5ProxyPort: fv.Socks5ProxyPort,