From 9b0a02f8e6c47ae37c3057def583a026be5884cd Mon Sep 17 00:00:00 2001 From: xqzr <34030394+xqzr@users.noreply.github.com> Date: Fri, 25 Jul 2025 17:49:36 +0800 Subject: [PATCH] Update system_dialer.go --- transport/internet/system_dialer.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/transport/internet/system_dialer.go b/transport/internet/system_dialer.go index f6408ef6..4945ff61 100644 --- a/transport/internet/system_dialer.go +++ b/transport/internet/system_dialer.go @@ -3,6 +3,7 @@ package internet import ( "context" "math/rand" + gonet "net" "syscall" "time" @@ -87,14 +88,22 @@ func (d *DefaultSystemDialer) Dial(ctx context.Context, src net.Address, dest ne Dest: destAddr, }, nil } - TCPKeepAlive := time.Duration(45) + TCPKeepAlive := time.Duration(1) + TCPKeepAliveConfig := gonet.KeepAliveConfig { + Enable: true, + Idle: 45 * time.Second, + Interval: 45 * time.Second, + Count: -1, + } if sockopt != nil && (sockopt.TcpKeepAliveInterval != 0 || sockopt.TcpKeepAliveIdle != 0) { TCPKeepAlive = time.Duration(-1) + TCPKeepAliveConfig.Enable = false } dialer := &net.Dialer{ Timeout: time.Second * 16, LocalAddr: resolveSrcAddr(dest.Network, src), KeepAlive: TCPKeepAlive, + KeepAliveConfig: TCPKeepAliveConfig, } if sockopt != nil || len(d.controllers) > 0 {