From df06d8f3df2046bc8c175f559d96d200eef8f262 Mon Sep 17 00:00:00 2001 From: Fangliding Date: Sun, 24 May 2026 23:15:47 +0800 Subject: [PATCH] dst addr --- proxy/socks/protocol.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/proxy/socks/protocol.go b/proxy/socks/protocol.go index 7fedb521..22c74179 100644 --- a/proxy/socks/protocol.go +++ b/proxy/socks/protocol.go @@ -4,6 +4,7 @@ import ( "context" "encoding/binary" "io" + gonet "net" "github.com/xtls/xray-core/common" "github.com/xtls/xray-core/common/buf" @@ -208,6 +209,13 @@ func (s *ServerSession) handshake5(nMethod byte, reader io.Reader, writer net.Co } responsePort = net.Port(udpHub.LocalAddr().(*net.UDPAddr).Port) tempUDPConn = NewTempUDPConn(udpHub, writer) + if !(request.Address.IP().IsUnspecified() && request.Port == 0) { + var udpRemote gonet.Addr = &gonet.UDPAddr{ + IP: request.Address.IP(), + Port: int(request.Port), + } + tempUDPConn.remote.Store(&udpRemote) + } } if err := writeSocks5Response(writer, statusSuccess, responseAddress, responsePort); err != nil { common.CloseIfExists(tempUDPConn)