diff --git a/route/route.go b/route/route.go index ca747462..624b2289 100644 --- a/route/route.go +++ b/route/route.go @@ -473,7 +473,7 @@ match: } if !preMatch && inputPacketConn != nil && !metadata.Destination.IsFqdn() && !metadata.Destination.Addr.IsGlobalUnicast() { var timeout time.Duration - if metadata.InboundType == C.TypeSOCKS { + if metadata.InboundType == C.TypeSOCKS || metadata.InboundType == C.TypeMixed { timeout = C.TCPTimeout } newBuffer, newPacketBuffers, newErr := r.actionSniff(ctx, metadata, &rule.RuleActionSniff{Timeout: timeout}, inputConn, inputPacketConn) @@ -572,7 +572,7 @@ func (r *Router) actionSniff( return } } else { - if !metadata.Destination.Addr.IsGlobalUnicast() { + if !metadata.Destination.IsFqdn() && !metadata.Destination.Addr.IsGlobalUnicast() { metadata.Destination = destination } if len(packetBuffers) > 0 {