Correção de Erro · 2 min de leitura

HTTP 407 Autenticação de Proxy Necessária: como corrigir isso

Um 407 é o proxy — não o site — dizendo que precisa de credenciais que não obteve. Este guia explica exatamente o que o aciona e passa pelas correções para curl, navegadores, Python, Windows e proxies corporativos.

O que um 407 realmente significa

HTTP 407 Autenticação de Proxy Necessária vem do proxy, não do site de destino. É a maneira do proxy dizer "Eu vou encaminhar seu pedido, mas primeiro prove quem você é." É o gêmeo da camada proxy de um 401: a resposta carrega um cabeçalho Proxy-Authenticate descrevendo o esquema que deseja (geralmente Basic), e espera-se que seu cliente reenvie o pedido com um cabeçalho Proxy-Authorization. Se as credenciais estiverem ausentes, malformadas ou erradas, você recebe um 407.

With authenticated proxies like s4m's — SOCKS5 on 1080, HTTP on 3128, both using USER:PASS — a 407 almost always means one of four things: you supplied no credentials, you supplied the wrong ones, the password contains special characters that broke URL parsing, or the tool you are using does not read credentials from where you put them (a classic with Puppeteer and Scrapy). The fixes below are ordered from most to least common. See the proxy authentication guide and the proxy overview for background.

Forneça credenciais corretamente, por ferramenta

O mesmo USER:PASS, no lugar onde cada ferramenta realmente o lê. Substitua pelas suas credenciais.

bash
# curl: inline in URL, or with -U (URL-encode special chars, e.g. @ -> %40)
curl -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org
curl -x proxy.s4m.online:3128 -U USER:PASS https://api.ipify.org

# wget: dedicated flags
wget -e https_proxy=proxy.s4m.online:3128 \
     --proxy-user=USER --proxy-password=PASS https://example.com

# Python requests: credentials belong in the proxy URL
#   proxies = {"http": "http://USER:PASS@proxy.s4m.online:3128",
#              "https": "http://USER:PASS@proxy.s4m.online:3128"}
#   requests.get(url, proxies=proxies)

# Environment variables (many tools read these):
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"

# Special characters? URL-encode the password:
#   pa@ss  ->  pa%40ss     (Python: urllib.parse.quote(pw, safe=''))

# Verify it worked: a 200 with an IP body means auth passed.
curl -o /dev/null -s -w "%{http_code}\n" \
     -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org

Corrija um 407, passo a passo

Trabalhe nesta lista; a maioria dos 407s é resolvida pelo passo 3.

Confirme que o proxy precisa de autenticação

Proxies s4m requerem USER:PASS. Um 407 significa que o proxy não obteve credenciais válidas — então a questão é apenas onde as suas estão se perdendo, não se a autenticação é necessária.

Verifique se as credenciais estão exatamente corretas

Recopie USER e PASS do seu painel. Um espaço no final, um caractere errado ou uma credencial expirada produzem um 407. Teste-os em um único comando curl -x primeiro.

Codifique em URL caracteres especiais

Se a senha contiver @, :, /, # ou similar, codifique-os (@ se torna %40). Não codificados, eles quebram a URL do proxy, fazendo com que o cliente envie credenciais erradas ou parciais.

Coloque as credenciais onde a ferramenta as lê

Algumas ferramentas ignoram credenciais de URL: Puppeteer precisa de page.authenticate(), Scrapy precisa de um cabeçalho Proxy-Authorization. Combine o método com a ferramenta, não apenas com o proxy.

Navegadores, Windows e proxies corporativos

Em um navegador, um 407 geralmente aparece como um popup de login do proxy; inserir o nome de usuário e a senha corretos o elimina. Ao automatizar um navegador, esse popup é todo o problema — o Chromium sem cabeça não pode respondê-lo, razão pela qual Puppeteer usa page.authenticate(), Playwright aceita credenciais em seu objeto proxy, e Selenium precisa de uma pequena extensão. No Windows, verifique o proxy do sistema em Configurações e qualquer proxy por aplicativo, já que uma credencial salva desatualizada lá pode acionar 407s em ferramentas que herdam o proxy do sistema.

Corporate proxies add a wrinkle: some use NTLM or Kerberos instead of Basic auth, so a plain USER:PASS is not enough and you need the tool's NTLM option. s4m itself uses standard Basic USER:PASS, so you will not need NTLM with our endpoints. If credentials are definitely correct and you still see 407, confirm you are hitting the right port (1080 SOCKS5, 3128 HTTP) and validate the endpoint with the tools. A related Chrome error is covered in the ERR_PROXY_CONNECTION_FAILED guide.

FAQ

Perguntas, respondidas

Um erro 407 é culpa do site ou do proxy?

O proxy. HTTP 407 Proxy Authentication Required é retornado pelo proxy, não pelo site de destino, informando que precisa de credenciais válidas antes de encaminhar sua solicitação. O site nunca é alcançado até que você se autentique.

Por que recebo 407 mesmo com a senha correta?

Na maioria das vezes, a senha contém caracteres especiais que quebram a URL do proxy, então o cliente envia o valor errado. Codifique-os em URL (por exemplo, @ se torna %40). Também confirme se a ferramenta lê as credenciais de onde você as colocou.

Como consertar 407 no Puppeteer, Playwright ou Selenium?

Os navegadores ignoram credenciais na flag do proxy. Use page.authenticate() no Puppeteer, os campos de nome de usuário/senha do objeto proxy no Playwright e uma pequena extensão de credenciais no Selenium.

O s4m usa autenticação de proxy NTLM?

Não. O s4m usa autenticação padrão Basic USER:PASS nas portas 1080 (SOCKS5) e 3128 (HTTP). NTLM se aplica apenas a alguns proxies corporativos, não aos nossos pontos de extremidade.

Proxies com autenticação simples

Os proxies s4m usam USER:PASS simples em proxy.s4m.online — sem NTLM, sem surpresas. SOCKS5 e HTTP de datacenter com medição, com uma opção de IP dedicado para acesso na lista de permissões.

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.