From b0ed2eefb6a9f1974ffe72cf18cdd14be7cf34c6 Mon Sep 17 00:00:00 2001 From: win Date: Wed, 1 Apr 2026 16:54:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20SOCKS5=20dialer=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=94=B9=20Info=20=E7=BA=A7=E5=88=AB=EF=BC=8COAuth=20=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E5=BB=B6=E9=95=BF=E8=87=B3=2060s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/pkg/tlsfingerprint/dialer.go | 10 +++++----- backend/internal/repository/claude_oauth_service.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/internal/pkg/tlsfingerprint/dialer.go b/backend/internal/pkg/tlsfingerprint/dialer.go index cc78cd14..73646a53 100644 --- a/backend/internal/pkg/tlsfingerprint/dialer.go +++ b/backend/internal/pkg/tlsfingerprint/dialer.go @@ -141,7 +141,7 @@ func NewSOCKS5ProxyDialer(profile *Profile, proxyURL *url.URL) *SOCKS5ProxyDiale // DialTLSContext establishes a TLS connection through SOCKS5 proxy with the configured fingerprint. // Flow: SOCKS5 CONNECT to target -> TLS handshake with utls on the tunnel func (d *SOCKS5ProxyDialer) DialTLSContext(ctx context.Context, network, addr string) (net.Conn, error) { - slog.Debug("tls_fingerprint_socks5_connecting", "proxy", d.proxyURL.Host, "target", addr) + slog.Info("tls_fingerprint_socks5_connecting", "proxy", d.proxyURL.Host, "target", addr) // Step 1: Create SOCKS5 dialer var auth *proxy.Auth @@ -166,18 +166,18 @@ func (d *SOCKS5ProxyDialer) DialTLSContext(ctx context.Context, network, addr st tcpDialer := &net.Dialer{} socksDialer, err := proxy.SOCKS5("tcp", proxyAddr, auth, tcpDialer) if err != nil { - slog.Debug("tls_fingerprint_socks5_dialer_failed", "error", err) + slog.Info("tls_fingerprint_socks5_dialer_failed", "error", err) return nil, fmt.Errorf("create SOCKS5 dialer: %w", err) } // Step 2: Establish SOCKS5 tunnel to target - slog.Debug("tls_fingerprint_socks5_establishing_tunnel", "target", addr) + slog.Info("tls_fingerprint_socks5_establishing_tunnel", "target", addr) conn, err := socksDialer.(proxy.ContextDialer).DialContext(ctx, "tcp", addr) if err != nil { - slog.Debug("tls_fingerprint_socks5_connect_failed", "error", err) + slog.Info("tls_fingerprint_socks5_connect_failed", "error", err) return nil, fmt.Errorf("SOCKS5 connect: %w", err) } - slog.Debug("tls_fingerprint_socks5_tunnel_established") + slog.Info("tls_fingerprint_socks5_tunnel_established", "target", addr) // Step 3: Perform TLS handshake on the tunnel with utls fingerprint return performTLSHandshake(ctx, conn, d.profile, addr) diff --git a/backend/internal/repository/claude_oauth_service.go b/backend/internal/repository/claude_oauth_service.go index 72bcbd81..e18c7a22 100644 --- a/backend/internal/repository/claude_oauth_service.go +++ b/backend/internal/repository/claude_oauth_service.go @@ -279,7 +279,7 @@ func createReqClient(proxyURL string) (*req.Client, error) { } client := req.C(). - SetTimeout(30 * time.Second). + SetTimeout(60 * time.Second). SetCookieJar(nil). // 禁用 CookieJar,确保每次授权都是干净的会话 EnableForceHTTP1() // 强制 HTTP/1.1,避免 H2 升级与自定义 TLS dialer 冲突