fix(超时时间): 修复超时时间硬编码

This commit is contained in:
2026-01-22 20:18:47 +08:00
parent 1107d353e3
commit 32b8a908db
3 changed files with 6 additions and 6 deletions
+1 -1
View File
@@ -52,7 +52,7 @@ func main() {
var err error
if s5 != "" {
fmt.Printf("通过代理探测: %s\n", s5)
conn, err = DialSocks5UDP(s5, network)
conn, err = DialSocks5UDP(s5, network, to)
if err != nil {
fmt.Printf("连接代理失败: %v\n", err)
return
+2 -2
View File
@@ -204,7 +204,7 @@ func DetectNAT(conn net.PacketConn, primarySTUN, secondarySTUN, network string,
}
if mappedAddr2 == nil {
res.Mapping = MappingUnknown
} else if mappedAddr1.String() == mappedAddr2.String() {
} else if mappedAddr1.IP.Equal(mappedAddr2.IP) && mappedAddr1.Port == mappedAddr2.Port {
res.Mapping = MappingEndpointIndependent
} else {
res.Mapping = MappingAddressPortDependent
@@ -223,7 +223,7 @@ func DetectNAT(conn net.PacketConn, primarySTUN, secondarySTUN, network string,
resp3, _, err := performTest(conn, altPortSTUN, network, timeout, false, false)
if err == nil && resp3 != nil {
if mappedAddr3 := resp3.GetMappedAddress(); mappedAddr3 != nil {
if mappedAddr1.String() == mappedAddr3.String() {
if mappedAddr1.IP.Equal(mappedAddr3.IP) && mappedAddr1.Port == mappedAddr3.Port {
res.Mapping = MappingAddressDependent
}
}
+3 -3
View File
@@ -180,9 +180,9 @@ func (c *socks5PacketConn) SetWriteDeadline(t time.Time) error {
}
// DialSocks5UDP 建立SOCKS5 UDP关联
// 入参: proxyAddr 代理服务器地址, network 网络协议(udp/udp4/udp6)
// 入参: proxyAddr 代理服务器地址, network 网络协议(udp/udp4/udp6), timeout 超时时间
// 返回: conn 数据包连接, err 连接错误
func DialSocks5UDP(proxyAddr, network string) (net.PacketConn, error) {
func DialSocks5UDP(proxyAddr, network string, timeout time.Duration) (net.PacketConn, error) {
var host string
if strings.Contains(proxyAddr, "://") {
u, err := url.Parse(proxyAddr)
@@ -200,7 +200,7 @@ func DialSocks5UDP(proxyAddr, network string) (net.PacketConn, error) {
case "udp6":
tcpNetwork = "tcp6"
}
conn, err := net.DialTimeout(tcpNetwork, host, 5*time.Second)
conn, err := net.DialTimeout(tcpNetwork, host, timeout)
if err != nil {
return nil, err
}