Resposta rápida
O que SOCKS5 proxy errors significa com um proxy?
Erros SOCKS5 vêm em três tipos: seu cliente não suporta SOCKS, o servidor rejeitou seu usuário e senha, ou o servidor não conseguiu alcançar o destino e devolveu um código de resposta. Com CrawlRelay, instale o suporte SOCKS primeiro (para Python requests: requests[socks]), use a porta SOCKS5 e prefira socks5h:// para que o DNS resolva na saída, não na sua máquina.
SOCKS5 proxy errors de relance
| Erro | SOCKS5 proxy errors |
|---|---|
| Tipo | Erro no protocolo ou cliente SOCKS5 |
| Enviado por | O servidor SOCKS5 (códigos de resposta) ou sua biblioteca cliente (falta de suporte) |
| Definido em | SOCKS5: RFC 1928; username/password authentication: RFC 1929 |
| Tentar novamente? | Depende do código de resposta |
| Primeira verificação | Confirme que o cliente suporta SOCKS5 com autenticação, depois leia o código de resposta |
O que SOCKS5 proxy errors significa?
SOCKS5, definido no RFC 1928, retransmite conexões TCP sem ler HTTP. Autenticação por usuário e senha é um pequeno intercâmbio separado, definido no RFC 1929. Após autenticação, o cliente pede conexão a um host e porta, e o servidor responde com um código de resposta de um byte.
Resposta 0x00 significa sucesso. Códigos 0x01 a 0x08 indicam falhas, desde falha geral do servidor até tipo de endereço não suportado. Clientes traduzem esses códigos em suas próprias mensagens.
Como a SOCKS5 error aparece em Python, curl, Node.js e navegadores?
A mesma falha aparece de forma diferente em cada ferramenta. Estas são as mensagens para buscar nos seus logs:
- Python requests sem PySocks:
InvalidSchema: Missing dependencies for SOCKS support. - curl, credenciais rejeitadas:
curl: (97) User was rejected by the SOCKS5 server - Resposta 0x01: 'falha geral do servidor SOCKS'
- Resposta 0x04 / 0x05: 'Host inacessível' / 'Conexão recusada' pelo destino
- Resposta 0x08: 'Tipo de endereço não suportado'
O que causa a SOCKS5 error?
Mais provável inicialmente:
- Suporte SOCKS não instalado na biblioteca cliente.
- Credenciais incorretas ou não codificadas em URL.
- Porta HTTP usada para SOCKS, ou porta SOCKS usada para HTTP.
- Destino recusado ou inacessível a partir da saída.
- DNS local com
socks5://: o cliente resolve o hostname, o que pode falhar ou retornar endereço regional errado.
Como diagnosticar a SOCKS5 error passo a passo?
- Confirme suporte a SOCKS: em Python,
pip show pysocks; em Node.js, pacote agente SOCKS. - Rode o teste curl abaixo usando a porta SOCKS5 com
--socks5-hostname. - Leia o código de resposta ou mensagem.
- Compare
socks5://esocks5h://para o mesmo destino.
# 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_URLComo corrigir a SOCKS5 error?
- Instale suporte:
pip install "requests[socks]"; em Node.js, use um agente proxy SOCKS. - Use a porta SOCKS5 para URLs
socks5h://e a porta HTTP para URLshttp://. - Prefira
socks5h://para que a saída resolva o DNS, correspondendo ao que visitantes locais recebem. - Para respostas 0x04 ou 0x05, teste o destino sem o proxy; pode estar fora ou recusando.
- Para navegadores, use a porta HTTP: Chromium não suporta autenticação SOCKS5.
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)Devo tentar novamente após a SOCKS5 error?
Refaça apenas falhas no lado do destino, como host inacessível ou conexão recusada, e apenas uma vez em uma saída nova. Falhas na autenticação e falta de suporte no cliente se repetem até corrigir a configuração.
Como SOCKS5 proxy errors se aplica ao CrawlRelay?
O CrawlRelay serve SOCKS5 em sua própria porta, listada abaixo, com o mesmo formato de usuário e senha da porta HTTP. Direcionamento e sessões funcionam igual em ambas as portas.
Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS via CONNECT) e porta 7778 (SOCKS5). Formato do usuário: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Relacionado: Não foi possível conectar ao proxy · guia do curl · guia Python.
SOCKS5 proxy errors: perguntas que desenvolvedores fazem
Qual a diferença entre socks5:// e socks5h://?
Com socks5:// seu cliente resolve o nome do host para um endereço IP sozinho e envia o IP para o proxy. Com socks5h:// ele envia o nome do host, e o proxy resolve. Use socks5h:// para scraping: o DNS acontece na saída, então você obtém as mesmas respostas regionais que visitantes locais.
Devo usar proxies SOCKS5 ou HTTP para scraping?
Para páginas web, ambos funcionam, e proxies HTTP são mais simples: toda biblioteca HTTP e navegador os suportam com autenticação. Use SOCKS5 para protocolos não HTTP ou para ferramentas que só falam SOCKS. Navegadores baseados em Chromium não conseguem autenticar no SOCKS5, então use a porta HTTP lá.
Por que o curl diz 'Usuário foi rejeitado pelo servidor SOCKS5'?
O servidor SOCKS5 recusou a troca de nome de usuário e senha. Verifique as credenciais, codifique caracteres especiais em URL, e confirme que está usando a porta SOCKS5. O mesmo usuário e senha devem funcionar na porta HTTP se a conta estiver ativa.
Outros erros de proxy nesta referência
Códigos de status HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Erros no navegador e cliente
Erros de conexão e TLS
Proxies residenciais com documentação que cobre os casos de falha
CrawlRelay proxies residenciais a partir de US$ 0,50/GB, tráfego que nunca expira.