คำตอบด่วน
SSL: WRONG_VERSION_NUMBER หมายความว่าอย่างไรกับพร็อกซี?
[SSL: WRONG_VERSION_NUMBER] ผ่านโปรกซีเกือบทั้งหมดหมายความว่าไคลเอนต์เริ่มการจับมือ TLS กับสิ่งที่ตอบกลับเป็นข้อความธรรมดา สาเหตุปกติคือ URL โปรกซี https:// ที่ชี้ไปยังพอร์ตโปรกซี HTTP ธรรมดา กับ CrawlRelay เขียน http:// หน้าโฮสต์เกตเวย์สำหรับเป้าหมาย HTTP และ HTTPS; HTTPS ของเว็บไซต์ยังทำงานผ่านอุโมงค์
SSL: WRONG_VERSION_NUMBER แบบสั้นๆ
| ข้อผิดพลาด | SSL: WRONG_VERSION_NUMBER |
|---|---|
| ประเภท | ข้อผิดพลาด TLS ในไคลเอนต์ |
| ส่งโดย | ไลบรารี TLS ของคุณ เมื่ออีกฝ่ายไม่พูด TLS |
| กำหนดไว้ใน | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| ลองใหม่อีกครั้งไหม? | ไม่ใช่ เป็นข้อผิดพลาดการตั้งค่า |
| ตรวจสอบก่อน | ดูสคีมหน้าที่อยู่โปรกซีของคุณ |
SSL: WRONG_VERSION_NUMBER หมายความว่าอย่างไร?
TLS เริ่มด้วยบันทึกจับมือ ถ้าบิตที่ตอบกลับมาเป็นการตอบ HTTP แทน ไลบรารี TLS จะอ่านหมายเลขเวอร์ชันมั่วและหยุด Python รายงาน WRONG_VERSION_NUMBER; คำพูดที่แน่นอนขึ้นอยู่กับเวอร์ชัน OpenSSL และไคลเอนต์
สคีม URL โปรกซีตัดสินใจว่าไคลเอนต์ของคุณสื่อสารกับโปรกซีอย่างไร http:// หมายถึง HTTP ธรรมดากับโปรกซี ตามด้วยอุโมงค์ CONNECT และ TLS กับเว็บไซต์ https:// หมายถึง TLS กับโปรกซีเอง ซึ่งใช้ได้เฉพาะถ้าพอร์ตโปรกซีรองรับ TLS
SSL: WRONG_VERSION_NUMBER เป็นอย่างไรใน Python, curl, Node.js และเบราว์เซอร์?
ข้อผิดพลาดเดียวกันนี้แสดงผลแตกต่างกันในแต่ละเครื่องมือ นี่คือข้อความที่ต้องค้นหาในบันทึกของคุณ:
- Python requests / urllib3 2.x:
SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))ซ้อนในProxyError - httpx:
httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number - curl:
curl: (35) ... wrong version numberเมื่อเขียน-x https://สำหรับโปรกซีธรรมดา - Node.js:
EPROTO ... wrong version numberในข้อความผิดพลาด
อะไรเป็นสาเหตุของ SSL: WRONG_VERSION_NUMBER?
โอกาสสูงสุดอันดับแรก:
https://หน้าโปรกซี บนพอร์ตที่พูด HTTP ธรรมดา กรณีนี้พบได้บ่อยที่สุด- ตั้งค่าคัดลอกจากผู้ให้บริการ ที่พอร์ตโปรกซีรองรับ TLS
https://ใน URL ที่พอร์ต 80 หรือhttp://บนพอร์ตไซต์ที่รองรับ TLS นอกโปรกซี- ตัวแปรสภาพแวดล้อม เช่น
HTTPS_PROXY=https://...ที่โค้ดของคุณได้รับสืบทอดมา
ฉันวินิจฉัย SSL: WRONG_VERSION_NUMBER ทีละขั้นตอนอย่างไร?
- พิมพ์ URL โปรกซีที่โค้ดใช้และตรวจสคีม
- ตรวจสอบสภาพแวดล้อมสำหรับ
HTTPS_PROXYและALL_PROXY - รันคำสั่ง curl ด้านล่างกับ
-x http://และยืนยันว่าทำงานได้ - ถ้า curl ใช้งานได้แต่โค้ดไม่ทำงาน แสดงว่าโค้ดหรือสภาพแวดล้อมยังใช้
https://
# 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ฉันจะแก้ไข SSL: WRONG_VERSION_NUMBER อย่างไร?
- ใช้
http://เป็น URL โปรกซี ในทุกคีย์:{"http": "http://...", "https": "http://..."} - เปิดการตรวจสอบ TLS ไว้ วิธีแก้คือสคีม ไม่ใช่
verify=False - แก้ไขตัวแปรสภาพแวดล้อม แทนการเขียนทับในสคริปต์เดียว
ฉันควรลองใหม่หลังจาก SSL: WRONG_VERSION_NUMBER ไหม?
อย่าลองใหม่ข้อผิดพลาดนี้: ทุกครั้งเป็นแบบเดียวกัน แก้ไขการตั้งค่าตัวอักษรเดียวพอ
SSL: WRONG_VERSION_NUMBER มีผลอย่างไรกับ CrawlRelay?
พอร์ต HTTP ของ CrawlRelay เป็นพอร์ตโปรกซี HTTP ธรรมดาที่ส่งเว็บไซต์ HTTPS ผ่านอุโมงค์ CONNECT TLS ทำงานจากต้นทางถึงปลายทางระหว่างไคลเอนต์กับเว็บไซต์ภายในอุโมงค์จึงไม่ต้องมี URL โปรกซี https:// ที่เกตเวย์
เกตเวย์: gw.crawlrelay.com, พอร์ต 7777 (HTTP, HTTPS ผ่าน CONNECT) และพอร์ต 7778 (SOCKS5). รูปแบบชื่อผู้ใช้: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. ที่เกี่ยวข้อง: SSL certificate verify failed · ไม่สามารถเชื่อมต่อกับโปรกซี · คำแนะนำ Python.
SSL: WRONG_VERSION_NUMBER: คำถามที่นักพัฒนาถาม
ถ้าฉันใช้ URL โปรกซี http:// ข้อมูลของฉันจะไม่มีการเข้ารหัสหรือ?
ไม่สำหรับเว็บไซต์ HTTPS สคีม http:// ครอบคลุมแค่การแลกเปลี่ยน CONNECT สั้นๆ กับโปรกซีซึ่งรวมถึงข้อมูลประจำตัวของโปรกซี หลังจากนั้นไคลเอนต์ทำ TLS กับเว็บไซต์โดยตรงในอุโมงค์ และโปรกซีแค่ส่งบิตที่เข้ารหัส เว็บไซต์ http:// ธรรมดาจะไม่เข้ารหัสไม่ว่าจะมีโปรกซีหรือไม่
ทำไมเกิดขึ้นหลังจากอัปเกรด urllib3?
urllib3 2.x รองรับโปรกซี HTTPS ดังนั้นจึงรับ URL โปรกซี https:// ตามตัวและเริ่ม TLS กับโปรกซี การตั้งค่าเก่าบางอย่างอาจเคยทำงานโดยบังเอิญกับสคีมผิดๆ เขียน http:// สำหรับพอร์ตโปรกซี HTTP ธรรมดาและข้อผิดพลาดจะหายไป
ฉันควรตั้ง verify=False เพื่อให้ข้อผิดพลาดหายไปไหม?
ไม่ การปิดตรวจสอบใบรับรองไม่แก้สคีมผิด และทำให้คุณเสี่ยงถูกดักข้อมูลในทุกคำขอ แก้สคีมของ URL โปรกซี และเปิดการตรวจสอบในสภาพแวดล้อมจริง
ข้อผิดพลาดพร็อกซีอื่นๆ ในเอกสารอ้างอิงนี้
รหัสสถานะ HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
ข้อผิดพลาดของเบราว์เซอร์และไคลเอนต์
ข้อผิดพลาดการเชื่อมต่อและ TLS
พร็อกซีเรซิเดนเชียลที่มีเอกสารอธิบายกรณีล้มเหลว
พร็อกซีเรซิเดนเชียล CrawlRelay จาก US$0.50/GB, ปริมาณข้อมูลที่ไม่หมดอายุ