From 823579b4ae5577356e9974d73dc4d1992dc1d3a9 Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Thu, 22 Jan 2026 20:26:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E9=80=9A=E8=BF=87=E4=BB=A3=E7=90=86):=20?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E4=BB=A3=E7=90=86=E6=A3=80=E6=9F=A5=E6=97=B6?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E5=85=AC=E7=BD=91=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- probe_nat.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/probe_nat.go b/probe_nat.go index c52b5f5..5ea70cc 100644 --- a/probe_nat.go +++ b/probe_nat.go @@ -149,12 +149,14 @@ func DetectNAT(conn net.PacketConn, primarySTUN, secondarySTUN, network string, return res } res.MappedIP = mappedAddr1.String() - if localAddr, ok := conn.LocalAddr().(*net.UDPAddr); ok { - if localAddr.IP.Equal(mappedAddr1.IP) && localAddr.Port == mappedAddr1.Port { - res.Type = NATOpen - res.Mapping = MappingEndpointIndependent - res.Filtering = FilteringEndpointIndependent - return res + if _, isSocks5 := conn.(*socks5PacketConn); !isSocks5 { + if localAddr, ok := conn.LocalAddr().(*net.UDPAddr); ok { + if localAddr.IP.Equal(mappedAddr1.IP) && localAddr.Port == mappedAddr1.Port { + res.Type = NATOpen + res.Mapping = MappingEndpointIndependent + res.Filtering = FilteringEndpointIndependent + return res + } } } var targetSTUN2 string