Como configurar o proxy no Windows

Visão geral

Este artigo explica como configurar o proxy no Windows, dividindo entre nível de usuário (WinINET) e nível de sistema (WinHTTP).
Exemplo: ProxyServer = http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>.
Os valores dependentes do ambiente são representados por <<variável>>.


Convenções de variáveis

Variável Exemplo Descrição
<<PROXY_ADDRESS>> proxy.exemplo.com:8080 Nome do host e porta do servidor proxy
<<PROXY_BYPASS>> intranet.exemplo.com;192.168.*;<local> Endereços ou domínios que ignoram o proxy (separados por 😉
<<ADVPROXY_SETTINGS_PATH>> C:\proxy-settings.json Caminho do arquivo JSON de configuração para o advproxy

Passo 1: Entender os tipos de configuração de proxy

Tipo Escopo Uso
Nível de usuário (WinINET) Usuário logado Afeta navegadores e aplicativos do usuário (IE/Edge, etc.)
Nível de sistema (WinHTTP) Conta do sistema / todo o OS Usado por Windows Update, BITS, Defender e outros serviços do sistema

BITS (Background Intelligent Transfer Service) é o serviço responsável por transferências em segundo plano (como Windows Update e definições do Defender).
Como ele roda sob a conta LocalSystem, as configurações de proxy do usuário (WinINET) não se aplicam automaticamente.


Passo 2: Configurar o proxy do usuário com PowerShell

$proxy = "<<PROXY_ADDRESS>>"
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyEnable -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyServer -Value "http=$proxy;https=$proxy"
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyOverride -Value "<<PROXY_BYPASS>>"

Verificação:

Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select ProxyEnable, ProxyServer, ProxyOverride

Passo 3: Configurar o proxy do sistema (WinHTTP / BITS)

① Método antigo (Windows Server 2019 e anteriores)

netsh winhttp set proxy <<PROXY_ADDRESS>> "<<PROXY_BYPASS>>"
netsh winhttp show proxy

② Novo método (Windows Server 2022 ou posterior – recomendado)

Criar o arquivo JSON:

@'
{
  "ProxyIsEnabled": true,
  "Proxy": "http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>",
  "ProxyBypass": "<<PROXY_BYPASS>>",
  "AutoConfigIsEnabled": false,
  "AutoDetect": false
}
'@ | Out-File "<<ADVPROXY_SETTINGS_PATH>>" -Encoding ascii

Aplicar as configurações:

netsh winhttp set advproxy setting-scope=machine settings-file="<<ADVPROXY_SETTINGS_PATH>>"

Também é possível definir diretamente via linha de comando (sem JSON):

netsh winhttp set advproxy setting-scope=machine settings='{\"ProxyIsEnabled\":true,\"Proxy\":\"http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>\",\"ProxyBypass\":\"<<PROXY_BYPASS>>\",\"AutoConfigIsEnabled\":false,\"AutoDetect\":false}'

Este método é útil para testes rápidos ou configurações temporárias.


Passo 4: Aplicar configuração do BITS para LocalSystem

bitsadmin /util /setieproxy localsystem MANUAL_PROXY <<PROXY_ADDRESS>> "<<PROXY_BYPASS>>"
bitsadmin /util /getieproxy localsystem

Passo 5: Verificação e solução de problemas

netsh winhttp show proxy
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select ProxyEnable, ProxyServer, ProxyOverride

Se o Windows Update falhar por causa do proxy, desative AutoDetect e use o formato advproxy em ambientes Server Core.


Redefinir as configurações de proxy

Nível de usuário (WinINET)

Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 0
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyOverride -ErrorAction SilentlyContinue

Nível de sistema (WinHTTP / advproxy)

netsh winhttp reset proxy

Ou, em ambientes Server 2022+:

netsh winhttp set advproxy setting-scope=machine settings='{\"Proxy\":\"\",\"ProxyBypass\":\"\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false}'

Conclusão

O Windows possui dois níveis principais de configuração de proxy:

  • WinINET — afeta comunicações de aplicativos do usuário (IE, Edge, etc.)
  • WinHTTP / advproxy — controla comunicações de sistema (Windows Update, BITS, Defender, etc.)

No Windows Server 2022 e posteriores, recomenda-se usar advproxy.
Use bitsadmin para aplicar a configuração ao LocalSystem.

Resumo prático:

  1. Identifique o tipo de comunicação (usuário ou sistema)
  2. Configure corretamente WinINET ou WinHTTP
  3. Use advproxy em Server Core
  4. Redefina com reset proxy / reset advproxy quando necessário

Assim, o ambiente Windows manterá comunicações estáveis e seguras mesmo atrás de proxies corporativos.