Cómo configurar el proxy en Windows

Resumen

Esta guía explica cómo configurar el proxy en Windows, a nivel de usuario (WinINET) y a nivel de sistema (WinHTTP / BITS). Usamos notaciones como ProxyServer = http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>, donde <<VARIABLE>> indica valores dependientes del entorno.


Notación de variables

En esta guía utilizamos las siguientes variables para valores dependientes del entorno. Sustitúyalas según su caso:

Variable Ejemplo Comentario
<<PROXY_ADDRESS>> proxy.ejemplo.com:8080 Dirección y puerto del servidor proxy
<<PROXY_BYPASS>> intranet.ejemplo.com;192.168.*;<local> Dominios/subredes que no usan proxy, separados por “;”
<<ADVPROXY_SETTINGS_PATH>> C:\proxy-settings.json Ruta del archivo JSON de configuración para advproxy

Paso 1: Entender los tipos de ajustes de proxy

Tipo Objetivo Uso principal
Usuario (WinINET) Ajustes del usuario que ha iniciado sesión Navegador, aplicaciones del usuario (IE/Edge, etc.)
Sistema (WinHTTP / advproxy) Ajustes para el sistema completo o servicios BITS, Windows Update, servicios de sistema que usan cuenta LocalSystem

Importante: BITS funciona bajo la cuenta LocalSystem, por lo que los ajustes de usuario (WinINET) no se aplican a esos servicios.


Paso 2: Configurar el proxy a nivel de usuario (WinINET) mediante 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>>"

Confirmar configuración:

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

Paso 3: Configurar el proxy a nivel sistema (WinHTTP / advproxy)

① Método clásico (para Windows Server 2019 o anterior)

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

② Método recomendado (Windows Server 2022 en adelante)

Crear archivo JSON con la configuración:

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

Aplicar la configuración:

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

Alternativamente (sin archivo 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}'

Paso 4: Reflejar la configuración del proxy para BITS (LocalSystem)

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

Paso 5: Verificación y solución de problemas

netsh winhttp show proxy
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select ProxyEnable, ProxyServer, ProxyOverride
  • Si Windows Update da errores vía proxy, asegúrese de que AutoDetect está en false y que se utilice advproxy para Server Core.
  • Verifique que los servicios del sistema estén utilizando configuración de sistema (no solo usuario).

Paso 6: Restablecer la configuración del proxy

Usuario (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

Sistema (WinHTTP / advproxy)

netsh winhttp reset proxy

O para el método advproxy:

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

Conclusión

La configuración de proxy en Windows se divide básicamente en dos niveles: usuario (WinINET) y sistema (WinHTTP / advproxy).

  • WinINET afecta a aplicaciones del usuario (IE/Edge, navegador, apps de usuario).
  • WinHTTP / advproxy impacta actualizaciones de sistema, BITS, servicios de fondo.

En entornos modernos (Windows Server 2022+), se recomienda usar advproxy mediante JSON. Gestionar correctamente ambos niveles asegura que actualizaciones, transferencias BITS y comunicaciones de sistema funcionen sin errores bajo entorno de proxy.

Pasos clave:

  1. Identifique el nivel de comunicación (usuario vs sistema).
  2. Aplique configuración adecuada (WinINET o WinHTTP).
  3. En entornos Server Core use advproxy.
  4. Cuando ya no se requiera proxy, restablezca usando los comandos correspondientes.

Con este enfoque, reducirá fallos de comunicación bajo proxy, y asegurará que servicios de sistema y de usuario operen correctamente.