Как настроить прокси в Windows

Обзор

В этой статье объясняется, как настроить прокси в Windows, разделяя настройки для пользователя (WinINET) и для всей системы (WinHTTP).
Пример: ProxyServer = http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>.
Переменные, зависящие от окружения, указаны в виде <<имя_переменной>>.


Обозначения переменных

Переменная Пример Описание
<<PROXY_ADDRESS>> proxy.example.com:8080 Хост и порт прокси-сервера
<<PROXY_BYPASS>> intranet.example.com;192.168.*;<local> Список адресов, для которых прокси не используется. Разделяются ;
<<ADVPROXY_SETTINGS_PATH>> C:\proxy-settings.json Путь к файлу настроек advproxy

Шаг 1: Понимание типов прокси-настроек

Тип Область применения Назначение
Пользовательский (WinINET) Для вошедшего пользователя Применяется к браузерам и пользовательским приложениям. Отражает параметры IE/Edge
Системный (WinHTTP) Для системных служб Используется для Windows Update, BITS, Defender и других системных служб

BITS (Background Intelligent Transfer Service) отвечает за фоновую передачу данных, включая обновления Windows и Defender.
Он работает от имени системной учётной записи (LocalSystem), поэтому не использует пользовательские настройки WinINET.


Шаг 2: Настройка пользовательского прокси через 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>>"

Проверка:

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

Шаг 3: Настройка системного прокси (WinHTTP / BITS)

① Старый метод (до Windows Server 2019)

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

② Новый метод (Windows Server 2022 и новее — рекомендуется)

Создайте JSON-файл:

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

Примените настройки:

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

Если не хотите использовать 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}'

Это удобно для временных тестов и автоматизации.


Шаг 4: Применение настроек прокси для службы BITS

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

Шаг 5: Проверка и устранение неполадок

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

Если обновление Windows не проходит через прокси, убедитесь, что параметр AutoDetect выключен.
Для Server Core используйте формат advproxy.


Сброс настроек прокси

Пользовательский уровень (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

Системный уровень (WinHTTP / advproxy)

netsh winhttp reset proxy

Для Windows Server 2022+:

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

Итог

В Windows есть два типа прокси-настроек: пользовательские (WinINET) и системные (WinHTTP / advproxy).

  • WinINET управляет сетевыми запросами браузеров и пользовательских программ.
  • WinHTTP / advproxy управляет системными службами: Windows Update, BITS, Defender и др.

На современных версиях Windows Server (2022+) рекомендуется использовать advproxy, однако старый winhttp остаётся совместимым.
Использование bitsadmin гарантирует корректное применение прокси для служб под LocalSystem.

Рекомендуемая стратегия:

  1. Определите тип связи — пользовательская или системная
  2. Настройте соответствующий уровень (WinINET или WinHTTP)
  3. Для Server Core — применяйте advproxy
  4. Для удаления настроек — используйте reset proxy или reset advproxy

Такой подход обеспечивает стабильную работу Windows Update и BITS даже в сетях с обязательным прокси.