# SOCKS5 代理错误：回复码、缺少支持及 DNS

> SOCKS5 错误详解：requests 缺少 SOCKS 支持，curl 错误 97，回复码 0x01 至 0x08，及 socks5 与 socks5h DNS。含解决方法。

- URL: https://crawlrelay.com/zh/docs/errors/socks5-proxy-errors/
- 最后更新: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

SOCKS5 协议或客户端错误：每个工具中的精确错误信息、可能原因排序及有效解决方案。

**快速回答 — 代理中的SOCKS5 proxy errors是什么意思？**

**SOCKS5 错误** 分三类：客户端无 SOCKS 支持，服务器拒绝用户名和密码，服务器无法连接目标并返回回复码。使用 CrawlRelay 时，先安装 SOCKS 支持（Python requests：`requests[socks]`），使用 SOCKS5 端口，并优先选用 `socks5h://` 让 DNS 在出口解析，而非本机。

## SOCKS5 proxy errors一览

| 属性 | 值 |
| --- | --- |
| 错误 | SOCKS5 proxy errors |
| 类型 | SOCKS5 协议或客户端错误 |
| 发送方 | SOCKS5 服务器（回复码）或客户端库（缺少支持） |
| 定义于 | SOCKS5: RFC 1928; username/password authentication: RFC 1929 |
| 要重试吗？ | 依回复码而定 |
| 先检查 | 确认客户端支持带认证的 SOCKS5，然后查看回复码 |

## SOCKS5 proxy errors是什么意思？

SOCKS5（定义于 RFC 1928）用于转发 TCP 连接，不处理 HTTP。用户名密码认证是另一次小交互，定义于 RFC 1929。认证后客户端请求连接目标主机与端口，服务器以一字节回复码响应。

回复 `0x00` 表示成功。回复码 `0x01` 到 `0x08` 表示失败，涵盖从服务器通用错误到不支持的地址类型。客户端将这些码转换为自己的错误信息。

## 在Python、curl、Node.js和浏览器中a SOCKS5 error是什么样？

每个工具中相同的失败会有不同的提示信息。请在日志中搜索以下信息：

- **未安装 PySocks 的 Python requests：** `InvalidSchema: Missing dependencies for SOCKS support.`
- **curl，认证失败：** `curl: (97) User was rejected by the SOCKS5 server`
- **回复 0x01：** “一般 SOCKS 服务器错误”
- **回复 0x04 / 0x05：** “目标不可达” / “目标拒绝连接”
- **回复 0x08：** “地址类型不支持”

## 导致a SOCKS5 error的原因是什么？

最可能的首要原因：

- **客户端库无 SOCKS 支持。**
- **认证凭据错误或未 URL 编码。**
- **用 SOCKS 端口访问 HTTP，或用 HTTP 端口访问 SOCKS。**
- **目标从出口被拒绝或不可达。**
- **本地 DNS 与 `socks5://`:** 客户端自行解析主机名，可能失败或返回错误区域地址。

## 如何一步步诊断a SOCKS5 error？

1. 确认支持 SOCKS：Python 使用 `pip show pysocks`；Node.js 使用 SOCKS 代理包。
2. 使用 `--socks5-hostname` 对 SOCKS5 端口执行下面 curl 测试。
3. 查看回复码或消息。
4. 比较同一目标的 `socks5://` 与 `socks5h://`。

*用curl测试失败的URL（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
```

## 如何修复a SOCKS5 error？

- **安装支持：** `pip install "requests[socks]"`；Node.js 使用 SOCKS 代理包。
- **使用 SOCKS5 端口** 访问 `socks5h://` URL，HTTP 端口访问 `http://` URL。
- **优先使用 `socks5h://`，** 让出口解析 DNS，匹配本地访问体验。
- **遇回复 0x04 或 0x05，** 直接在无代理状态下测试目标，可能目标宕机或拒绝服务。
- **浏览器使用 HTTP 端口，** Chromium 不支持 SOCKS5 认证。

*Python requests通过SOCKS5（pip install "requests[socks]")*

```python
import requests

# socks5h:// sends the hostname to the proxy, so DNS resolves at the exit
proxy = "socks5h://USERNAME:PASSWORD@gw.crawlrelay.com:7778"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=(10, 30))
print(r.status_code, r.text)
```

## 遇到a SOCKS5 error后要重试吗？

仅重试目标端失败（如主机不可达或连接拒绝）且仅在新出口上重试一次。认证失败和缺少客户端支持的问题需修正配置后才能解决。

## SOCKS5 proxy errors如何应用于CrawlRelay？

CrawlRelay 在专用端口提供 SOCKS5 服务，用户名格式和密码与 HTTP 端口相同。目标选择和会话用法两端一致。

网关：`gw.crawlrelay.com`，端口7777（通过CONNECT的HTTP、HTTPS）和端口7778（SOCKS5）。用户名格式：`USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`。相关内容：[无法连接代理](https://crawlrelay.com/zh/docs/errors/cannot-connect-to-proxy/) · [curl 指南](https://crawlrelay.com/zh/docs/curl/) · [Python 指南](https://crawlrelay.com/zh/docs/python/)。

## SOCKS5 proxy errors：开发者常问的问题

### socks5:// 和 socks5h:// 有什么区别？

使用 `socks5://` 时，您的客户端会先解析主机名到 IP 地址，然后将 IP 发送给代理。使用 `socks5h://` 时，它发送主机名，由代理端解析。抓取时使用 `socks5h://`：DNS 解析发生在出口节点，因此您会获得与本地访问者相同区域的结果。

### 抓取时我应该使用 SOCKS5 代理还是 HTTP 代理？

对于网页，两者都可用，HTTP 代理更简单：所有 HTTP 库和浏览器都支持带身份验证的 HTTP 代理。非 HTTP 协议或仅支持 SOCKS 的工具使用 SOCKS5。基于 Chromium 的浏览器无法对 SOCKS5 进行身份验证，请使用 HTTP 端口。

### 为什么 curl 显示“用户被 SOCKS5 服务器拒绝”？

SOCKS5 服务器拒绝了用户名和密码的交换。请检查凭据，URL 编码特殊字符，并确认您使用的是 SOCKS5 端口。如果账户有效，相同的用户名和密码在 HTTP 端口应能正常使用。

## 本参考中的其他代理错误

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

**带有涵盖失败案例文档的住宅代理** 来自US$0.50/GB的CrawlRelay住宅代理，流量永不过期。 [查看价格](https://crawlrelay.com/zh/pricing/) · [快速开始](https://crawlrelay.com/zh/docs/)

---

CrawlRelay: CrawlRelay 是为开发者设计的住宅代理和 4G/5G 移动代理轮换服务，适用于爬虫和 AI 数据管道：按需付费且流量永不过期，最低流量从 US$0.50/GB 起，支持加密货币支付，无需上传身份证明。无需 KYC —— 无需身份证、自拍和任何证件。支持加密货币支付。
