Você configura o proxy, abre um verificador de IP e aparece o endereço brasileiro do proxy. Tudo certo? Nem sempre. Dependendo de como o cliente foi configurado, a consulta de DNS continua saindo pela sua internet — e isso aparece em testes de vazamento como uma origem que não bate com o IP.
Com SOCKS5, a causa quase sempre é uma letra: socks5 em vez de socks5h.
O que acontece antes da conexão
Para acessar exemplo.com.br, o programa precisa primeiro descobrir o endereço IP desse nome. Essa etapa é a consulta de DNS. Só depois a conexão é aberta.
A pergunta é: quem faz a consulta de DNS, a sua máquina ou o proxy?
| Esquema | Quem resolve o nome | O que o proxy recebe |
|---|---|---|
socks5:// |
Sua máquina | O IP já resolvido |
socks5h:// |
O proxy | O nome do site |
Em socks5, a consulta DNS sai pela sua conexão antes de a requisição passar pelo proxy. O site vê o IP do proxy, mas o servidor de DNS vê a sua origem. Em socks5h, o nome vai para o proxy, que resolve do lado dele. A letra h vem de hostname.
DNS leak: o que é
DNS leak (vazamento de DNS) é o nome dado a essa situação: o tráfego sai pelo proxy ou pela VPN, mas a consulta de nomes continua indo para o DNS da sua conexão. O destino vê o IP do proxy; o seu provedor de internet, e qualquer teste de vazamento, vê que você consultou exemplo.com.br. Para uso pessoal é uma questão de privacidade. Para operação de contas é uma questão de coerência: o endereço de saída diz "Brasil, operadora X" e a consulta de DNS diz "outro provedor, outra cidade".
Por que isso importa
- Coerência de origem. Um teste de vazamento que mostra DNS de uma operadora e IP de outra indica configuração inconsistente.
- Resultados por região. Alguns serviços respondem com endereços diferentes conforme a origem da consulta DNS. Resolver na sua máquina pode trazer o servidor errado para a região do proxy.
- Rede corporativa. Em redes que filtram DNS, a consulta local pode ser bloqueada mesmo com proxy configurado.
Como corrigir em cada cliente
curl
# resolve na sua máquina
curl -x socks5://usuario:senha@host:porta https://exemplo.com.br
# resolve no proxy
curl -x socks5h://usuario:senha@host:porta https://exemplo.com.br
A opção equivalente em linha de comando é --socks5-hostname.
Python (requests com suporte a SOCKS instalado)
proxies = {
"http": "socks5h://usuario:senha@host:porta",
"https": "socks5h://usuario:senha@host:porta",
}
requests.get("https://exemplo.com.br", proxies=proxies)
Node.js (agente SOCKS)
const { SocksProxyAgent } = require("socks-proxy-agent");
const agent = new SocksProxyAgent("socks5h://usuario:senha@host:porta");
Se a senha tiver caractere especial, codifique antes de montar a URL — é um dos erros listados em erros comuns de configuração.
Como confirmar que parou de vazar
- Abra um teste de vazamento de DNS pela mesma configuração do proxy.
- Veja se os servidores de DNS listados são coerentes com a origem do proxy, e não com a sua operadora.
- Compare antes e depois da troca para
socks5h.
O passo a passo completo de verificação, incluindo WebRTC no navegador, está em testar proxy online.
SOCKS5 ou HTTP, afinal
Se a ferramenta aceita os dois e você não tem motivo técnico para usar SOCKS5, HTTP costuma ser o mais simples e compatível. SOCKS5 com resolução remota faz sentido quando a aplicação não é navegador, quando pede SOCKS5 ou quando o DNS precisa sair pela mesma origem.
Na ProxyBox, IPv4, ISP e residencial entregam as duas portas com o mesmo usuário e senha, então dá para testar os dois sem comprar de novo. No IPv6, você escolhe SOCKS5 no checkout. Os tipos de IP que aceitam SOCKS5 e quando usar cada um estão em proxy SOCKS5 Brasil.