From b809f89411c70551bed0e9cc2466ddf8aa7c05b4 Mon Sep 17 00:00:00 2001 From: xjasonlyu Date: Mon, 3 Apr 2023 12:24:07 +0800 Subject: [PATCH] Revert: udp-rlybuf option As a low-level networking tool, tun2socks should be able to handle UDP packets of all possible sizes. This reverts commit fb9ca959095eb53c21bafd09676d58a32aca1eed. --- Dockerfile | 1 - engine/engine.go | 8 -------- engine/key.go | 1 - main.go | 1 - tunnel/udp.go | 15 +++------------ 5 files changed, 3 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index 596b75c..3dda97b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,6 @@ ENV PROXY=direct:// ENV MTU=9000 ENV RESTAPI= ENV UDP_TIMEOUT= -ENV UDP_RLYBUF= ENV TCP_SNDBUF= ENV TCP_RCVBUF= ENV TCP_AUTO_TUNING= diff --git a/engine/engine.go b/engine/engine.go index 6f7b743..52ff976 100644 --- a/engine/engine.go +++ b/engine/engine.go @@ -133,14 +133,6 @@ func general(k *Key) error { } tunnel.SetUDPTimeout(k.UDPTimeout) } - - if k.UDPRelayBufferSize != "" { - size, err := units.RAMInBytes(k.UDPRelayBufferSize) - if err != nil { - return err - } - tunnel.SetUDPRelayBufferSize(int(size)) - } return nil } diff --git a/engine/key.go b/engine/key.go index bc77500..d829ba7 100644 --- a/engine/key.go +++ b/engine/key.go @@ -14,7 +14,6 @@ type Key struct { TCPSendBufferSize string `yaml:"tcp-send-buffer-size"` TCPReceiveBufferSize string `yaml:"tcp-receive-buffer-size"` TCPWaitTimeout time.Duration `yaml:"tcp-wait-timeout"` - UDPRelayBufferSize string `yaml:"udp-relay-buffer-size"` UDPTimeout time.Duration `yaml:"udp-timeout"` TUNPreUp string `yaml:"tun-pre-up"` TUNPostUp string `yaml:"tun-post-up"` diff --git a/main.go b/main.go index 8573c72..33f17ab 100644 --- a/main.go +++ b/main.go @@ -35,7 +35,6 @@ func init() { flag.StringVar(&key.RestAPI, "restapi", "", "HTTP statistic server listen address") flag.StringVar(&key.TCPSendBufferSize, "tcp-sndbuf", "", "Set TCP send buffer size for netstack") flag.StringVar(&key.TCPReceiveBufferSize, "tcp-rcvbuf", "", "Set TCP receive buffer size for netstack") - flag.StringVar(&key.UDPRelayBufferSize, "udp-rlybuf", "", "Set UDP relay buffer size for tunnel") flag.BoolVar(&key.TCPModerateReceiveBuffer, "tcp-auto-tuning", false, "Enable TCP receive buffer auto-tuning") flag.DurationVar(&key.TCPWaitTimeout, "tcp-wait-timeout", 0, "Set timeout before closing each TCP connection") flag.StringVar(&key.TUNPreUp, "tun-pre-up", "", "Execute a command before TUN device setup") diff --git a/tunnel/udp.go b/tunnel/udp.go index f5569db..5a3a17d 100644 --- a/tunnel/udp.go +++ b/tunnel/udp.go @@ -15,22 +15,13 @@ import ( "github.com/xjasonlyu/tun2socks/v2/tunnel/statistic" ) -var ( - // _udpSessionTimeout is the default timeout for each UDP session. - _udpSessionTimeout = 60 * time.Second - - // _udpRelayBufferSize is the default size for UDP packets relay. - _udpRelayBufferSize = 16 << 10 -) +// _udpSessionTimeout is the default timeout for each UDP session. +var _udpSessionTimeout = 60 * time.Second func SetUDPTimeout(t time.Duration) { _udpSessionTimeout = t } -func SetUDPRelayBufferSize(size int) { - _udpRelayBufferSize = size -} - // TODO: Port Restricted NAT support. func handleUDPConn(uc adapter.UDPConn) { defer uc.Close() @@ -93,7 +84,7 @@ func relayPacket(left net.PacketConn, right net.PacketConn, to net.Addr) error { } func copyPacketBuffer(dst net.PacketConn, src net.PacketConn, to net.Addr, timeout time.Duration) error { - buf := pool.Get(_udpRelayBufferSize) + buf := pool.Get(pool.MaxSegmentSize) defer pool.Put(buf) for {