mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 04:31:52 +08:00
fix: 修复6个运行时问题
1. 抑制 gmtls 库的 handshake error stdout 噪声 gmtls/conn.go:1304 硬编码了 fmt.Println,在调用时临时重定向 os.Stdout 2. MySQL 3306 服务名误识别为 genetec-5400 nmap 指纹库将 MySQL 握手包的随机 salt 误匹配,通过 banner 特征校正 3. 管道输出时自动禁用 ANSI 控制码 检测 stdout 是否为终端,非终端时自动启用 NoColor 4. 进度条完成消息措辞精确化 去掉冗余冒号,保持信息简洁一致 5. URL 模式跳过不必要的 TLS 探测 用户已通过 -u 显式指定 http:// 协议时直接使用,不再做 TLS 握手 6. 无网络探测数据时降低默认重试次数 -np 跳过存活探测后,将默认重试从 3 降到 2,加速不可达主机的超时
This commit is contained in:
+12
-5
@@ -97,11 +97,18 @@ func (ep *EnvironmentProfile) TuneConfig(config *common.Config, session *common.
|
||||
// 含义: 重试 N 次后仍然全部丢包的概率 < 1%
|
||||
// 例: 丢包率 5% → N=2, 丢包率 20% → N=3, 丢包率 50% → N=7
|
||||
// 下限 1(零丢包也至少试一次),上限 6(避免对不可达目标死磕)
|
||||
if !isExplicit(config, "retry") && net.Samples > 0 {
|
||||
computed := computeRetries(net.LossRate, net.Env)
|
||||
old := config.MaxRetries
|
||||
config.MaxRetries = computed
|
||||
session.LogDebug(fmt.Sprintf("MaxRetries: %d -> %d (loss_rate=%.2f%%)", old, computed, net.LossRate*100))
|
||||
if !isExplicit(config, "retry") {
|
||||
if net.Samples > 0 {
|
||||
computed := computeRetries(net.LossRate, net.Env)
|
||||
old := config.MaxRetries
|
||||
config.MaxRetries = computed
|
||||
session.LogDebug(fmt.Sprintf("MaxRetries: %d -> %d (loss_rate=%.2f%%)", old, computed, net.LossRate*100))
|
||||
} else if config.MaxRetries > 2 {
|
||||
// 无网络探测数据(-np 跳过存活探测),降低默认重试避免对不可达主机死磕
|
||||
old := config.MaxRetries
|
||||
config.MaxRetries = 2
|
||||
session.LogDebug(fmt.Sprintf("MaxRetries: %d -> %d (no network probe data)", old, config.MaxRetries))
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- ICMPRate ----------
|
||||
|
||||
Reference in New Issue
Block a user