Guia do desenvolvedor · 2 min de leitura

Como usar um proxy com curl

curl tem suporte a proxy embutido: algumas flags roteiam qualquer solicitação através de um endpoint HTTP ou SOCKS5. Este guia fornece comandos para copiar e colar contra seu proxy s4m, cobrindo autenticação, HTTPS, variáveis de ambiente e como confirmar seu IP de saída.

Por que rotear curl através de um proxy

Quando o curl se conecta diretamente, o servidor de destino vê o endereço IP real da sua máquina na conexão. Roteando a solicitação através de um proxy reverso insere um intermediário: o destino agora vê o endereço do proxy, enquanto sua origem permanece fora da troca. Esse é o objetivo principal de proxyar tráfego automatizado — você oculta o IP de origem do host que realmente está fazendo a solicitação, o que mantém seu servidor principal fora do radar de terceiros.

Proxies pagos s4m são autenticados, pontos finais de datacenter SOCKS5 e HTTP, cobrados por gigabyte. Esse modelo se encaixa em scripts, execuções de teste de scraping, pipelines de CI e chamadas de APIs de um endereço estável. Se em vez disso você quiser que cada aplicativo em uma máquina seja tunelado com uma taxa mensal fixa (não cobrada por GB), uma conexão de VPN WireGuard é geralmente a melhor ferramenta — compare o tráfego de proxy cobrado com planos de VPN fixa em preços. Para testes rápidos e descartáveis, a lista pública de proxies gratuitos oferece proxies de terceiros que a s4m valida continuamente, mas eles são estritamente por sua conta e risco e não são operados por nós.

curl entende ambos os protocolos de proxy nativamente, então nenhuma ferramenta extra é necessária — você muda uma única flag ou um esquema de URL. As diferenças práticas:

AspectProxy HTTP (porta 3128)Proxy SOCKS5 (porta 1080)
sintaxe do curl-x http://...:3128-x socks5h://...:1080
ManipulaHTTP e HTTPS (via CONNECT)Qualquer conexão TCP
DNS remotoSim, o proxy resolveSim, com socks5h:// ou --socks5-hostname
AutenticaçãoUSER:PASSUSER:PASS

Escolha HTTP quando você só precisa de tráfego web; escolha SOCKS5 quando você quiser DNS remoto ou precisar tunelar um protocolo não-HTTP.

As flags principais: -x, --socks5-hostname e auth

Cada exemplo direciona seu endpoint s4m em proxy.s4m.online — porta 3128 para HTTP, 1080 para SOCKS5 — com USER:PASS representando suas credenciais reais.

bash
# 1) HTTP/HTTPS through the HTTP proxy (port 3128)
#    curl auto-issues CONNECT for https:// URLs, so TLS stays end-to-end
curl -x http://USER:PASS@proxy.s4m.online:3128 https://example.com

# 2) SOCKS5 with remote DNS (port 1080)
#    socks5h:// resolves the hostname AT the proxy (avoids local DNS leaks)
curl -x socks5h://USER:PASS@proxy.s4m.online:1080 https://example.com

# 3) Same SOCKS5 call using dedicated flags instead of a URL scheme
curl --socks5-hostname proxy.s4m.online:1080 \
     --proxy-user USER:PASS \
     https://example.com

# 4) Keep credentials out of the proxy URL with -U / --proxy-user
curl -x http://proxy.s4m.online:3128 -U USER:PASS https://example.com

# 5) --proxy is just the long form of -x
curl --proxy http://USER:PASS@proxy.s4m.online:3128 https://example.com

Defina uma vez com variáveis de ambiente de proxy

Em vez de adicionar -x a cada comando, exporte o proxy uma vez e deixe o curl reutilizá-lo para toda a sessão do shell.

bash
# curl reads http_proxy in LOWERCASE only (a historical CGI safeguard);
# HTTPS_PROXY, ALL_PROXY and NO_PROXY work in either case.
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"

# No -x needed now:
curl https://example.com

# Prefer a SOCKS5 endpoint for everything instead:
export ALL_PROXY="socks5h://USER:PASS@proxy.s4m.online:1080"

# Let some hosts bypass the proxy entirely:
export NO_PROXY="localhost,127.0.0.1,.internal.example"

# Confirm the exit IP, then clean up:
curl https://api.ipify.org; echo
unset http_proxy HTTPS_PROXY ALL_PROXY NO_PROXY

Verifique o IP de saída e armadilhas comuns

A maneira mais rápida de confirmar se o tráfego realmente sai pelo proxy é perguntar a um serviço de eco qual IP ele vê. Execute a mesma solicitação com e sem -x e compare os resultados.

Sem o proxy, você obtém o endereço da sua própria máquina; com ele, você deve obter o endereço de saída s4m. Se os dois forem idênticos, o proxy não está sendo aplicado — verifique novamente o esquema, a porta e se suas credenciais precisam de codificação de URL.

  • Credenciais com símbolos: codifique caracteres como @ ou : dentro de USER ou PASS, ou evite o problema completamente passando-os com --proxy-user.
  • Vazamentos de DNS SOCKS: use socks5h:// ou --socks5-hostname para que as consultas ocorram no proxy em vez de no seu resolvedor local.
  • 407 Autenticação de Proxy Necessária: o par USER:PASS está faltando ou está incorreto para esse endpoint.
  • Realidade do Datacenter: proxies s4m são IPs de datacenter, então um site que bloqueia especificamente faixas de datacenter ainda os reconhecerá como tal.
Share this page
FAQ

Perguntas, respondidas

Devo usar socks5:// ou socks5h:// com curl?

Prefira socks5h:// (ou a flag --socks5-hostname). Ele resolve o nome do host de destino no proxy, então seu servidor DNS local nunca vê a consulta. O socks5:// simples resolve localmente primeiro, o que pode revelar o destino e usar seu próprio resolvedor.

HTTPS ainda funciona através de um proxy HTTP?

Sim, e nenhuma bandeira extra é necessária. Para uma URL https://, o curl envia um HTTP CONNECT para o proxy e cria um túnel TLS de ponta a ponta, então o proxy retransmite apenas o fluxo criptografado (ele vê o nome do host via SNI, não o conteúdo da página).

Os proxies s4m são residenciais?

Não. Os proxies pagos s4m são endpoints de datacenter SOCKS5 e HTTP autenticados. Eles são estáveis e medidos por gigabyte, mas os intervalos de datacenter são identificáveis como IPs de datacenter, portanto, não passarão como uma conexão doméstica.

Por que minha variável HTTP_PROXY está sendo ignorada?

curl lê a variável http_proxy apenas em letras minúsculas, uma proteção de longa data contra injeção de cabeçalho CGI. HTTPS_PROXY, ALL_PROXY e NO_PROXY são lidas em qualquer caso. Use http_proxy em letras minúsculas ou apenas passe -x na linha de comando.

Posso sempre sair do mesmo IP?

Sim, com o complemento de IP pessoal dedicado. É um endereço estático que é só seu, vinculável ao seu proxy (ou VPN) e opcionalmente desvinculado de sua identidade. Veja a página de preços para detalhes.

Obtenha credenciais de proxy em minutos

Crie uma conta gratuita no s4m para obter pontos finais SOCKS5 e HTTP autenticados com tráfego medido pay-as-you-go, além de um IP dedicado opcional. Cadastro anônimo e pagamento em cripto são suportados, e você pode testar as bandeiras acima.

As pessoas encontraram esta página pesquisando por

Frases de busca reais que esta página responde — os links abrem a página que as cobre em profundidade.