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

> requests.exceptions.ProxyError 'ไม่สามารถเชื่อมต่อกับพร็อกซี' อธิบาย: อ่านสาเหตุภายใน (ปฏิเสธ, หมดเวลา, DNS, 407, 502) และใช้การแก้ไขที่ถูกต้อง

- URL: https://crawlrelay.com/th/docs/errors/cannot-connect-to-proxy/
- อัปเดตล่าสุด: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

ข้อผิดพลาดไลบรารีไคลเอ็นต์ (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, โหมดละเอียด)*

```bash
# 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:PASSWORD@gw.crawlrelay.com: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](https://crawlrelay.com/th/docs/errors/407-proxy-authentication-required/)]
- **502 หรือ 504:** ลองใหม่กับจุดออกใหม่ ดูที่ [502](https://crawlrelay.com/th/docs/errors/502-bad-gateway/)] และ [504](https://crawlrelay.com/th/docs/errors/504-gateway-timeout/)]
- **โปรกซีตัวแปรสภาพแวดล้อมที่ไม่ต้องการ:** ตั้งค่า `session.trust_env = False` ใน requests หรือทำความสะอาดตัวแปรเหล่านั้น

*Python: สร้าง URL ของพร็อกซีพร้อมรหัสผ่านแบบเข้ารหัส*

```python
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](https://crawlrelay.com/th/docs/errors/ssl-wrong-version-number/) · [407](https://crawlrelay.com/th/docs/errors/407-proxy-authentication-required/) · [คำแนะนำ Python](https://crawlrelay.com/th/docs/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

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

- [401 Unauthorized vs 407](https://crawlrelay.com/th/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/th/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/th/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/th/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/th/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/th/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/th/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/th/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/th/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/th/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/th/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/th/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/th/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/th/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/th/docs/errors/ssl-wrong-version-number/)

**พร็อกซีเรซิเดนเชียลที่มีเอกสารอธิบายกรณีล้มเหลว** พร็อกซีเรซิเดนเชียล CrawlRelay จาก US$0.50/GB, ปริมาณข้อมูลที่ไม่หมดอายุ [ดูราคา](https://crawlrelay.com/th/pricing/) · [เริ่มต้นอย่างรวดเร็ว](https://crawlrelay.com/th/docs/)

---

CrawlRelay: CrawlRelay คือพร็อกซีเรซิเดนเชียลหมุนเวียนพร้อมพร็อกซีมือถือ 4G/5G สำหรับนักพัฒนา เหมาะกับสแครปเปอร์และระบบจัดการข้อมูล AI: เติมเงินจ่ายตามการใช้งานจาก US$0.50/GB จ่ายด้วยคริปโต ไม่ต้องอัปโหลดบัตรประชาชน ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องถ่ายเซลฟี่ ไม่ต้องใช้เอกสาร จ่ายด้วยคริปโต
