Настройка прокси-сервера в PowerShell
Для настройки прокси-сервера в PowerShell есть несколько ключевых команд и подходов — они позволяют гибко управлять подключениями как на уровне всей системы, так и для отдельных приложений.
1. Настройка системного прокси через netsh (WinHTTP)
Установить прокси для WinHTTP:
powershell
netsh winhttp set proxy IP-адрес:порт
Например:
powershell
netsh winhttp set proxy 192.168.0.14:3128
Посмотреть текущие настройки:
powershell
netsh winhttp show proxy
Сбросить настройки прокси:
powershell
netsh winhttp reset proxy
Добавить список исключений (адреса, которые будут обходить прокси):
powershell
netsh winhttp set proxy "192.168.0.14:3128" bypass-list="10.*,172.*,192.168.*,*.corp.local"
Такой способ подходит для прокси без авторизации или с авторизацией по IP1 2 3 .
2. Настройка прокси через реестр (Internet Settings)
Включить прокси и задать адрес:
powershell
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer -Value "IP-адрес:порт"
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 1
Отключить прокси:
powershell
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 0
Проверить текущие параметры:
powershell
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object ProxyServer, ProxyEnable
Этот метод влияет на большинство браузеров и приложений Windows3 .
3. Использование переменных окружения (PowerShell Core, Linux)
Задать переменные для HTTP/HTTPS прокси:
powershell
$ENV:HTTP_PROXY = "http://IP:PORT"
$ENV:HTTPS_PROXY = "http://IP:PORT"
Для прокси с авторизацией:
powershell
$ENV:HTTP_PROXY = "http://username:password@IP:PORT"
$ENV:HTTPS_PROXY = "http://username:password@IP:PORT"
Проверить переменные:
powershell
dir env:
Такой способ особенно актуален для PowerShell 7.x и выше, а также для Linux2 5 .
4. Прокси с авторизацией в PowerShell Core
Для командлетов типа Invoke-WebRequest:
powershell
Invoke-WebRequest -Proxy "http://username:password@IP:PORT" -Uri "http://example.com"
Или для SOCKS5:
powershell
Invoke-WebRequest -Proxy "socks5://IP:PORT" -Uri "http://example.com"
В PowerShell 7.x поддерживаются схемы http, https, socks4, socks4a, socks55 .
5. Проверка работы прокси
Проверить, используется ли прокси для конкретного адреса:
powershell
([System.Net.WebRequest]::GetSystemWebproxy()).IsBypassed("https://example.com")
Если результат False — запрос пойдет через прокси2 .
Проверить соединение через прокси:
powershell
Test-NetConnection -ComputerName "example.com" -Port 80
Эти команды позволяют гибко настраивать прокси для работы в интернете, обеспечивать анонимность в сети, обходить блокировки и использовать надежные прокси для работы с корпоративными или частными ресурсами.