Không cần KYC — không cần ID, không selfie, không giấy tờ. Thanh toán bằng crypto: BTC, USDT, USDC, ETH, SOL, LTC
Ngôn ngữ: Tiếng Việt
Bắt đầu ngay

Tham khảo lỗi proxy · Lỗi kết nối và TLS

SSL WRONG_VERSION_NUMBER qua proxy: cách sửa

Lỗi TLS trong client: thông báo chính xác trong từng công cụ, nguyên nhân có thể theo thứ tự, và cách sửa hiệu quả.

Cập nhật lần cuối: · 4 phút đọc

Trả lời nhanh

SSL: WRONG_VERSION_NUMBER nghĩa là gì với proxy?

[SSL: WRONG_VERSION_NUMBER] qua proxy hầu như luôn có nghĩa client bạn bắt đầu bắt tay TLS với thứ trả về dạng văn bản thuần. Nguyên nhân phổ biến là URL proxy https:// trỏ tới port proxy HTTP thường. Với CrawlRelay, viết http:// trước địa chỉ gateway cho mục tiêu HTTP và HTTPS; HTTPS của website vẫn hoạt động qua tunnel.

SSL: WRONG_VERSION_NUMBER nhìn nhanh

LỗiSSL: WRONG_VERSION_NUMBER
LoạiLỗi TLS trong client
Gửi bởiThư viện TLS của bạn khi bên kia không dùng TLS
Định nghĩa tạiTLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6
Thử lại?Không. Đó là lỗi cấu hình
Kiểm tra trước tiênNhìn vào scheme trước URL proxy của bạn

SSL: WRONG_VERSION_NUMBER nghĩa là gì?

TLS bắt đầu bằng bản ghi bắt tay. Nếu byte trả về là phản hồi HTTP, thư viện TLS đọc số phiên bản vô nghĩa và dừng. Python báo WRONG_VERSION_NUMBER; lời báo chính xác khác nhau theo phiên bản OpenSSL và client.

Scheme URL proxy quyết định cách client bạn giao tiếp với proxy. http:// nghĩa HTTP thường tới proxy, theo sau là tunnel CONNECT và TLS với website. https:// nghĩa TLS tới proxy, chỉ khi port proxy mong đợi TLS.

SSL: WRONG_VERSION_NUMBER trông như thế nào trong Python, curl, Node.js và trình duyệt?

Cùng một lỗi nhưng hiển thị khác nhau trên mỗi công cụ. Đây là các thông báo bạn nên tìm trong nhật ký của mình:

  • Python requests / urllib3 2.x: SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number')) bọc trong ProxyError
  • httpx: httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number
  • curl: curl: (35) ... wrong version number khi bạn viết -x https:// cho proxy thường
  • Node.js: EPROTO ... wrong version number trong thông báo lỗi

Nguyên nhân gây ra SSL: WRONG_VERSION_NUMBER là gì?

Khả năng đầu tiên là:

  • https:// trước địa chỉ proxy trên port giao tiếp HTTP thường. Đây là trường hợp phổ biến nhất.
  • Cấu hình copy-paste từ nhà cung cấp có port proxy kỳ vọng TLS.
  • https:// trên URL với port 80, hoặc http:// trên port site yêu cầu TLS, ngoài proxy.
  • Biến môi trường như HTTPS_PROXY=https://... kế thừa trong mã của bạn.

Làm sao để chẩn đoán SSL: WRONG_VERSION_NUMBER từng bước?

  1. In URL proxy mà mã bạn dùng và kiểm tra scheme của nó.
  2. Kiểm tra biến môi trường cho HTTPS_PROXY và ALL_PROXY.
  3. Chạy thử curl bên dưới với -x http:// và xác nhận nó hoạt động.
  4. Nếu curl được mà mã không, mã hoặc môi trường bạn vẫn đang dùng https://.
Kiểm tra URL bị lỗi với curl (cổng HTTP, chi tiết)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Làm sao để sửa SSL: WRONG_VERSION_NUMBER?

  • Dùng http:// cho URL proxy trong mọi khóa: {"http": "http://...", "https": "http://..."}.
  • Để bật xác thực TLS. Cách sửa là scheme, không phải verify=False.
  • Sửa biến môi trường, thay vì ghi đè trong script riêng.

Có nên thử lại sau SSL: WRONG_VERSION_NUMBER không?

Không bao giờ thử lại lỗi này: mọi lần thử đều lỗi như nhau. Đây là sửa cấu hình chỉ một ký tự.

SSL: WRONG_VERSION_NUMBER áp dụng thế nào với CrawlRelay?

Port HTTP của CrawlRelay là port proxy HTTP thường chuyên chở các site HTTPS qua tunnel CONNECT. TLS chạy end-to-end giữa client bạn và website bên trong tunnel, nên gateway không cần URL proxy https://.

Gateway: gw.crawlrelay.com, cổng 7777 (HTTP, HTTPS qua CONNECT) và cổng 7778 (SOCKS5). Định dạng tên người dùng: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Tham khảo liên quan: Lỗi xác thực SSL · Không kết nối được proxy · Hướng dẫn Python.

SSL: WRONG_VERSION_NUMBER: các câu hỏi thường gặp của lập trình viên

Lưu lượng của tôi có bị giải mã nếu tôi dùng http:// proxy URL?

Không với website HTTPS. Scheme http:// chỉ bao phủ việc trao đổi CONNECT ngắn với proxy, bao gồm xác thực proxy của bạn. Sau đó client chạy TLS trực tiếp với website bên trong tunnel, proxy chỉ chuyển tiếp byte đã mã hóa. Website http:// thuần túy không mã hóa dù có proxy hay không.

Tại sao lỗi này bắt đầu sau khi nâng cấp urllib3?

urllib3 2.x hỗ trợ proxy HTTPS, nên nó coi https:// literal và bắt đầu TLS với proxy. Những cấu hình cũ đôi khi vô tình hoạt động với scheme sai. Viết http:// cho port proxy HTTP thường và lỗi mất.

Tôi có nên đặt verify=False cho hết lỗi này không?

Không. Tắt kiểm tra chứng chỉ không sửa được scheme sai, và khiến bạn dễ bị đánh cắp thông tin ở mọi yêu cầu. Sửa URL proxy scheme. Giữ bật xác thực trong môi trường sản xuất.

Các lỗi proxy khác trong tài liệu tham khảo này

Mã trạng thái HTTP

Lỗi trình duyệt và client

Lỗi kết nối và TLS

Proxy dân cư với tài liệu bao gồm các trường hợp lỗi

CrawlRelay proxy dân cư từ 0,50 US$/GB, lưu lượng không bao giờ hết hạn.

Từ 0,50 US$/GB · không cần KYC

Bắt đầu ngay