ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องถ่ายเซลฟี่ ไม่ต้องเอกสาร จ่ายด้วยคริปโต: BTC, USDT, USDC, ETH, SOL, LTC
ภาษา: ไทย
เริ่มต้นเลย

ข้อมูลอ้างอิงข้อผิดพลาดพร็อกซี · ข้อผิดพลาดของเบราว์เซอร์และไคลเอนต์

ProxyError: 'ไม่สามารถเชื่อมต่อกับโปรกซี' ใน Python และ Node.js

ข้อผิดพลาดไลบรารีไคลเอ็นต์ (Python, Node.js): ข้อความผิดพลาดที่แม่นยำในแต่ละเครื่องมือ สาเหตุที่เป็นไปได้ตามลำดับ และวิธีแก้ไขที่ใช้งานได้

อัปเดตล่าสุด:

คำตอบด่วน

Cannot connect to proxy (ProxyError) หมายความว่าอย่างไรกับพร็อกซี?

'ไม่สามารถเชื่อมต่อกับโปรกซี' คือข้อผิดพลาดแบบครอบคลุม: requests และ urllib3 ของ Python จะใส่เหตุผลจริงไว้ข้างใน อ่านสาเหตุภายในสุด 'เชื่อมต่อถูกปฏิเสธ' หรือหมดเวลา หมายถึงปัญหาที่โฮสต์ พอร์ต หรือเครือข่าย; 'ไม่สามารถแก้ไขชื่อได้' หมายถึง DNS; 'การเชื่อมต่ออุโมงค์ล้มเหลว: 407' หมายถึงข้อมูลประจำตัว กับ CrawlRelay แต่ละประเภทนี้มีวิธีแก้ไขแบบบรรทัดเดียว

Cannot connect to proxy (ProxyError) แบบสั้นๆ

ข้อผิดพลาดCannot connect to proxy (ProxyError)
ประเภทข้อผิดพลาดไลบรารีไคลเอ็นต์ (Python, Node.js)
ส่งโดยHTTP client ของคุณ ก่อนหรือขณะพูดคุยกับพร็อกซี
กำหนดไว้ในLibrary error; read the nested cause for the real reason
ลองใหม่อีกครั้งไหม?ขึ้นอยู่กับสาเหตุภายใน
ตรวจสอบก่อนอ่านข้อยกเว้นภายในสุด: ปฏิเสธ, หมดเวลา, แก้ชื่อไม่ได้ หรือรหัสสถานะ

Cannot connect to proxy (ProxyError) หมายความว่าอย่างไร?

urllib3 จะโยน ProxyError ทุกครั้งที่ล้มเหลวเกี่ยวกับโปรกซี และ requests จะส่งต่อข้อผิดพลาดนั้น ข้อมูลที่เป็นประโยชน์จะอยู่ในข้อยกเว้นซ้อนกัน ซึ่ง traceback จะแสดงท้ายข้อความยาวๆ

ไคลเอนต์ Node.js ทำงานแตกต่างกัน: จะแจ้งข้อผิดพลาดซ็อกเก็ตตรงๆ เช่น ECONNREFUSED หรือ ETIMEDOUT โดยมักไม่บอกว่าที่อยู่ คือโปรกซี

'Cannot connect to proxy' เป็นอย่างไรใน Python, curl, Node.js และเบราว์เซอร์?

ข้อผิดพลาดเดียวกันนี้แสดงผลแตกต่างกันในแต่ละเครื่องมือ นี่คือข้อความที่ต้องค้นหาในบันทึกของคุณ:

  • ปฏิเสธ: ProxyError('Unable to connect to proxy', NewConnectionError(... Connection refused))
  • DNS: NameResolutionError(... Failed to resolve ...) ภายใน ProxyError
  • ข้อมูลประจำตัว: OSError('Tunnel connection failed: 407 Proxy Authentication Required')
  • ข้อผิดพลาดเกตเวย์: OSError('Tunnel connection failed: 502 Bad Gateway')
  • Node.js: Error: connect ECONNREFUSED, ETIMEDOUT หรือ ENOTFOUND ตามด้วยที่อยู่ของโปรกซี

อะไรเป็นสาเหตุของ 'Cannot connect to proxy'?

โอกาสสูงสุดอันดับแรก:

  • โฮสต์หรือพอร์ตไม่ถูกต้อง ใน URL โปรกซี
  • ไม่มีสคีม: host:port ที่ไม่มี http:// อาจถูกแปลความหมายแปลกๆ โดยไลบรารีบางตัว
  • ถูกบล็อกการรับส่งข้อมูลขาออก บนเครือข่ายหรือเซิร์ฟเวอร์ของคุณ
  • ข้อผิดพลาดข้อมูลประจำตัวหรือเกตเวย์ ที่เกิดขึ้นระหว่างขั้นตอน CONNECT ซ้อนอยู่ในข้อยกเว้นเดียวกัน
  • ตัวแปรสภาพแวดล้อม เช่น HTTPS_PROXY ที่ชี้ไปยังโปรกซีเก่า และเขียนทับโค้ดของคุณ

ฉันวินิจฉัย 'Cannot connect to proxy' ทีละขั้นตอนอย่างไร?

  1. พิมพ์ข้อความข้อยกเว้นทั้งหมดและอ่านสาเหตุในสุดที่ซ้อนอยู่
  2. พิมพ์ requests.utils.get_environ_proxies(url) หรือ HTTP_PROXY, HTTPS_PROXY และ NO_PROXY เพื่อดูว่ามีการตั้งค่าอะไรเพิ่มเติม
  3. รันคำสั่ง curl ทดสอบด้านล่างจากเครื่องเดียวกัน
  4. จับคู่สาเหตุกับรายการวิธีแก้ด้านล่าง
ทดสอบ URL ที่ล้มเหลวด้วย curl (พอร์ต HTTP, โหมดละเอียด)
# 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

ฉันจะแก้ไข 'Cannot connect to proxy' อย่างไร?

  • ปฏิเสธหรือหมดเวลา: แก้ไขโฮสต์และพอร์ต หรือเปิดรับส่งข้อมูลขาออกไปยังเกตเวย์
  • ไม่สามารถแก้ไขชื่อได้: ตรวจสอบ DNS ในเครื่อง; ลองใช้โฮสต์พร้อม nslookup
  • 407: แก้ข้อมูลประจำตัวและทำการเข้ารหัส URL ดูที่ 407 Proxy Authentication Required]
  • 502 หรือ 504: ลองใหม่กับจุดออกใหม่ ดูที่ 502] และ 504]
  • โปรกซีตัวแปรสภาพแวดล้อมที่ไม่ต้องการ: ตั้งค่า session.trust_env = False ใน requests หรือทำความสะอาดตัวแปรเหล่านั้น
Python: สร้าง URL ของพร็อกซีพร้อมรหัสผ่านแบบเข้ารหัส
from urllib.parse import quote

import requests

user = "USERNAME-country-us"
password = "p@ss:word/1"  # example containing special characters

# safe="" also encodes "/", "@" and ":" inside the credentials
proxy = "http://{}:{}@gw.crawlrelay.com:7777".format(
    quote(user, safe=""), quote(password, safe="")
)
proxies = {"http": proxy, "https": proxy}  # http:// for both keys

r = requests.get("https://api.ipify.org", proxies=proxies, timeout=(10, 30))
print(r.status_code, r.text)

ฉันควรลองใหม่หลังจาก 'Cannot connect to proxy' ไหม?

ลองใหม่เฉพาะสาเหตุระดับเครือข่ายที่เปลี่ยนแปลงได้ เช่น หมดเวลา และข้อผิดพลาดเกตเวย์ เช่น 502 หรือ 504 การเชื่อมต่อถูกปฏิเสธ ความล้มเหลวในการแก้ไขชื่อ หรือ 407 จะเกิดขึ้นซ้ำจนกว่าคุณจะเปลี่ยนการตั้งค่า ดังนั้นให้ถือเป็นข้อผิดพลาดร้ายแรงในการจัดการข้อผิดพลาดของคุณ

Cannot connect to proxy (ProxyError) มีผลอย่างไรกับ CrawlRelay?

สำหรับ CrawlRelay URL โปรกซี คือ http://USERNAME:PASSWORD@ ตามด้วยโฮสต์เกตเวย์และพอร์ต HTTP ที่ระบุด้านล่าง สำหรับเป้าหมาย HTTP และ HTTPS ใช้ URL http:// เดียวกันสำหรับทั้งคีย์ http และ https ใน requests: สคีมระบุโปรโตคอลที่สื่อสารกับโปรกซี ไม่ใช่เว็บไซต์

เกตเวย์: 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: WRONG_VERSION_NUMBER · 407 · คำแนะนำ Python.

Cannot connect to proxy (ProxyError): คำถามที่นักพัฒนาถาม

'Max retries exceeded with url' กับโปรกซีหมายความว่าอย่างไร?

หมายความว่า urllib3 ยอมแพ้หลังจากใช้สิทธิ์ลองใหม่หมดแล้ว และเหตุผลจริงจะตามมาในส่วน 'Caused by' ของข้อความ กับโปรกซี ส่วนนี้มักเป็น ProxyError พร้อมสาเหตุซ้อน เช่น เชื่อมต่อถูกปฏิเสธ หมดเวลา ล้มเหลวในการแก้ชื่อ หรือสถานะอุโมงค์เช่น 407

ทำไม requests ใช้โปรกซีที่ฉันไม่ได้ตั้งค่า?

requests อ่านตัวแปรสภาพแวดล้อม HTTP_PROXY, HTTPS_PROXY และ NO_PROXY โดยดีฟอลต์ และใน Windows ยังอ่านการตั้งค่าโปรกซีระบบด้วย ค่าที่เหลือเดิมจะเขียนทับความคาดหมายของคุณ ตั้งค่า session.trust_env = False หรือส่ง proxies โดยตรงทุกคำขอ

ฉันควรเขียน http:// หรือ https:// หน้าโปรกซีที่อยู่หรือไม่?

เขียน http:// สำหรับโปรกซี HTTP ถึงเว็บจะใช้ HTTPS ก็ตาม สคีมแสดงวิธีที่ไคลเอนต์ของคุณสื่อสารกับโปรกซี การเขียน https:// ทำให้ urllib3 เวอร์ชันใหม่เริ่ม TLS กับโปรกซี ซึ่งล้มเหลวเมื่อใช้พอร์ตโปรกซี HTTP ธรรมดาโดยแสดงข้อผิดพลาด SSL

ข้อผิดพลาดพร็อกซีอื่นๆ ในเอกสารอ้างอิงนี้

รหัสสถานะ HTTP

ข้อผิดพลาดของเบราว์เซอร์และไคลเอนต์

ข้อผิดพลาดการเชื่อมต่อและ TLS

พร็อกซีเรซิเดนเชียลที่มีเอกสารอธิบายกรณีล้มเหลว

พร็อกซีเรซิเดนเชียล CrawlRelay จาก US$0.50/GB, ปริมาณข้อมูลที่ไม่หมดอายุ

จาก US$0.50/GB · ไม่ต้อง KYC

เริ่มต้นเลย