diff --git a/plugins/services/smtp.go b/plugins/services/smtp.go index dece689..1a85dbd 100644 --- a/plugins/services/smtp.go +++ b/plugins/services/smtp.go @@ -243,6 +243,9 @@ func (p *SMTPPlugin) testAnonymousAccess(ctx context.Context, info *common.HostI } defer func() { _ = conn.Close() }() + // 修复: 设置读写超时, 防止对只accept不发送banner的服务器(tarpit)永久阻塞 + _ = conn.SetDeadline(time.Now().Add(session.Config.ModuleTimeout())) + client, err := smtp.NewClient(conn, info.Host) if err != nil { resultChan <- nil @@ -295,6 +298,9 @@ func (p *SMTPPlugin) testOpenRelay(ctx context.Context, info *common.HostInfo, s } defer func() { _ = conn.Close() }() + // 修复: 设置读写超时, 防止对只accept不发送banner的服务器(tarpit)永久阻塞 + _ = conn.SetDeadline(time.Now().Add(session.Config.ModuleTimeout())) + client, err := smtp.NewClient(conn, info.Host) if err != nil { resultChan <- nil