Voltar ao blog

Proxy Não Suporta o Protocolo Necessário: O Que Fazer

Analisamos as razões da incompatibilidade de proxies com protocolos e soluções práticas: desde a configuração de conversores locais até a escolha correta do tipo de proxy.

📅9 de dezembro de 2025
```html

Proxy não suporta o protocolo necessário: o que fazer

Você configurou o proxy, iniciou o script — e recebeu o erro "Protocol not supported" ou "Connection refused". O problema de incompatibilidade de protocolos é mais comum do que se imagina. Vamos analisar por que isso acontece e como resolver a situação sem trocar de provedor.

Quais protocolos os proxies utilizam

Antes de resolver o problema, é importante entender a diferença entre os protocolos. Cada um tem sua área de aplicação e limitações.

Protocolo Portas Padrão Características
HTTP 80, 8080, 3128 Apenas tráfego HTTP, pode modificar cabeçalhos
HTTPS (CONNECT) 443, 8443 Tunelamento via HTTP CONNECT, criptografia
SOCKS4 1080 Conexões TCP, sem autenticação, sem UDP
SOCKS5 1080, 1081 TCP e UDP, autenticação, DNS via proxy

Conflitos Típicos:

  • Selenium e Puppeteer exigem HTTP/HTTPS, mas você tem SOCKS5
  • Bots do Telegram funcionam via SOCKS5, mas o proxy só suporta HTTP
  • Clientes de Torrent exigem SOCKS5 com UDP, mas o proxy é SOCKS4
  • Aplicações de jogos exigem UDP, mas proxies HTTP não o suportam

Diagnóstico: determinando o protocolo do proxy

Se o provedor não especificou o protocolo explicitamente ou você está em dúvida, teste o proxy por conta própria.

Teste via curl

Testando o protocolo HTTP:

# Proxy HTTP
curl -x http://proxy_ip:port http://httpbin.org/ip

# Com autenticação
curl -x http://user:pass@proxy_ip:port http://httpbin.org/ip

Testando SOCKS5:

# Proxy SOCKS5
curl -x socks5://proxy_ip:port http://httpbin.org/ip

# SOCKS5 com DNS via proxy (socks5h)
curl -x socks5h://proxy_ip:port http://httpbin.org/ip

Se o comando retornar o endereço IP do proxy, o protocolo foi determinado corretamente. Um erro como Connection refused ou Unsupported proxy indica que o protocolo está incorreto.

Teste via Python

import requests

proxy_ip = "proxy_ip:port"

# Teste HTTP
try:
    r = requests.get("http://httpbin.org/ip", 
                     proxies={"http": f"http://{proxy_ip}"}, 
                     timeout=10)
    print(f"HTTP funciona: {r.json()}")
except Exception as e:
    print(f"HTTP não funciona: {e}")

# Teste SOCKS5 (requer pip install requests[socks])
try:
    r = requests.get("http://httpbin.org/ip", 
                     proxies={"http": f"socks5://{proxy_ip}"}, 
                     timeout=10)
    print(f"SOCKS5 funciona: {r.json()}")
except Exception as e:
    print(f"SOCKS5 não funciona: {e}")

Detecção Automática

Script para iterar sobre protocolos:

import requests

def detect_protocol(proxy_address):
    protocols = ["http", "https", "socks4", "socks5", "socks5h"]
    
    for proto in protocols:
        try:
            proxies = {
                "http": f"{proto}://{proxy_address}",
                "https": f"{proto}://{proxy_address}"
            }
            r = requests.get("http://httpbin.org/ip", 
                           proxies=proxies, timeout=5)
            if r.status_code == 200:
                return proto
        except:
            continue
    return None

result = detect_protocol("proxy_ip:port")
print(f"Protocolo detectado: {result}")

Conversão de HTTP para SOCKS e vice-versa

Se o proxy suporta um protocolo diferente do exigido pelo seu software, use um conversor local.

Privoxy: HTTP → SOCKS

O Privoxy aceita requisições HTTP e as encaminha através de um proxy SOCKS.

Instalação:

# Ubuntu/Debian
sudo apt install privoxy

# macOS
brew install privoxy

# Windows — baixar do site oficial

Configuração (arquivo /etc/privoxy/config):

# Escuta na porta local 8118 (HTTP)
listen-address 127.0.0.1:8118

# Encaminha através do SOCKS5 externo
forward-socks5 / socks_proxy_ip:1080 .

# Com autenticação
forward-socks5 / user:pass@socks_proxy_ip:1080 .

Agora, seu software se conecta a 127.0.0.1:8118 via HTTP, e o tráfego é roteado pelo SOCKS5.

Gost: conversor universal

Gost é uma ferramenta poderosa para qualquer transformação de protocolo.

# Proxy HTTP na entrada → SOCKS5 na saída
gost -L http://:8080 -F socks5://socks_proxy_ip:1080

# SOCKS5 na entrada → HTTP na saída
gost -L socks5://:1080 -F http://http_proxy_ip:8080

# Com autenticação em ambas as pontas
gost -L http://local_user:local_pass@:8080 \
     -F socks5://remote_user:remote_pass@proxy_ip:1080

Conversor em Python

Um conversor minimalista para tarefas simples:

# pip install pproxy
# HTTP na entrada, SOCKS5 na saída
pproxy -l http://:8080 -r socks5://proxy_ip:1080

# SOCKS5 na entrada, HTTP na saída  
pproxy -l socks5://:1080 -r http://proxy_ip:8080

Configuração de túneis locais

Às vezes, a conversão não é suficiente — é necessário um túnel completo.

Túnel SSH sobre proxy HTTP

Se você tem um servidor SSH e um proxy HTTP, pode criar um SOCKS5:

# Cria um SOCKS5 em localhost:1080 através do proxy HTTP
ssh -D 1080 -o ProxyCommand="nc -X connect -x http_proxy:8080 %h %p" user@ssh_server

Stunnel para HTTPS

Se você precisa de um proxy HTTPS, mas só tem HTTP:

# stunnel.conf
[https-proxy]
client = yes
accept = 127.0.0.1:8443
connect = http_proxy_ip:8080
protocol = connect
protocolHost = target_host:443

Configurando o software para o protocolo disponível

Às vezes, é mais fácil configurar o software para o protocolo disponível do que converter o tráfego.

Selenium com diferentes protocolos

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Proxy HTTP (método padrão)
options = Options()
options.add_argument('--proxy-server=http://proxy_ip:8080')

# Proxy SOCKS5
options.add_argument('--proxy-server=socks5://proxy_ip:1080')

# Para Firefox com SOCKS5
from selenium.webdriver.firefox.options import Options as FirefoxOptions
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.socks", "proxy_ip")
profile.set_preference("network.proxy.socks_port", 1080)
profile.set_preference("network.proxy.socks_version", 5)

aiohttp com SOCKS

# pip install aiohttp-socks
import aiohttp
from aiohttp_socks import ProxyConnector

async def fetch_with_socks():
    connector = ProxyConnector.from_url('socks5://proxy_ip:1080')
    async with aiohttp.ClientSession(connector=connector) as session:
        async with session.get('http://httpbin.org/ip') as response:
            return await response.json()

Bots do Telegram via HTTP

Se a biblioteca do Telegram exigir SOCKS5, mas você tiver HTTP:

# python-telegram-bot com proxy HTTP
from telegram.ext import ApplicationBuilder

application = (
    ApplicationBuilder()
    .token("YOUR_TOKEN")
    .proxy_url("http://proxy_ip:8080")  # Funciona com HTTP
    .build()
)

Dica: Muitas bibliotecas modernas suportam ambos os protocolos. Verifique a documentação — talvez seja suficiente alterar o esquema de URL de socks5:// para http://.

Como escolher um proxy com o protocolo correto

Para evitar problemas de protocolo, defina os requisitos com antecedência.

Matriz de Compatibilidade

Tarefa Protocolo Recomendado Porquê
Web Scraping HTTP/HTTPS Amplo suporte, configuração simples
Automação de Navegador HTTP ou SOCKS5 Depende do navegador e do framework
Bots do Telegram, Discord SOCKS5 Requisitos das bibliotecas
Torrents SOCKS5 com UDP DHT e PEX usam UDP
Jogos, VoIP SOCKS5 com UDP Baixa latência, tráfego UDP
Requisições de API HTTP/HTTPS APIs REST funcionam via HTTP

O que observar ao escolher um provedor

  • Lista de protocolos suportados — deve ser explicitamente indicada
  • Capacidade de alternância — alguns provedores dão acesso ao mesmo IP através de portas/protocolos diferentes
  • Suporte a UDP para SOCKS5 — nem todos os proxies SOCKS5 suportam UDP
  • Documentação de configuração — exemplos para diferentes linguagens e ferramentas

Proxies residenciais geralmente suportam HTTP/HTTPS e SOCKS5 simultaneamente, o que elimina a maioria dos problemas de compatibilidade. Proxies de datacenter são mais frequentemente limitados a HTTP/HTTPS.

Checklist antes da compra

  1. Determine qual protocolo seu software exige
  2. Verifique se o UDP é necessário (jogos, torrents, VoIP)
  3. Confirme com o provedor o suporte ao protocolo desejado
  4. Solicite acesso de teste para verificar a compatibilidade
  5. Prepare um plano B — um conversor local

Conclusão

A incompatibilidade de protocolos é um problema solucionável. Na maioria dos casos, um conversor local como Privoxy ou Gost é suficiente. Para projetos de longo prazo, é mais vantajoso escolher um proxy que suporte o protocolo necessário desde o início.

Para tarefas que exigem flexibilidade na escolha do protocolo, proxies residenciais com acesso multiprotocolo são adequados — mais detalhes em proxycove.com.

```