无需 KYC —— 无需身份证、自拍、文件证明。支持加密货币支付:BTC, USDT, USDC, ETH, SOL, LTC
语言: 简体中文
开始使用

代理错误参考 · 连接和 TLS 错误

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

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端口,详细模式)
# 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

如何修复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]")
import requests

# socks5h:// sends the hostname to the proxy, so DNS resolves at the exit
proxy = "socks5h://USERNAME:[email protected]: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}。相关内容:无法连接代理 · curl 指南 · 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 端口应能正常使用。

本参考中的其他代理错误

HTTP 状态码

浏览器和客户端错误

连接和 TLS 错误

带有涵盖失败案例文档的住宅代理

来自US$0.50/GB的CrawlRelay住宅代理,流量永不过期。

从 US$0.50/GB 开始 · 无需 KYC

开始使用