Поделиться через


Средство настройки прокси-сервера ProxyCfg.exe

Важно!

ProxyCfg.exe не рекомендуется использовать с Windows Vista и Windows Server 2008. Она заменена Netsh.exe (см . команды Netsh.exe).

В этом разделе объясняется использование средства ProxyCfg.exeнастройки прокси-сервера служб Microsoft Windows (WinHTTP).

Существует два способа доступа к серверам HTTP и secure Hypertext Transfer Protocol (HTTPS) через прокси-сервер с помощью служб Microsoft Windows HTTP (WinHTTP). Сначала можно указать параметры прокси-сервера из приложения WinHTTP. Во-вторых, можно указать параметры прокси-сервера по умолчанию извне приложения с помощью служебной программы конфигурации прокси-сервера, расположенной в каталоге %windir%\system32.

Вы можете программно задать данные прокси-сервера из приложения или скрипта. Если вы пишете приложение с помощью API WinHTTP, используйте один из следующих двух методов для изменения параметров прокси-сервера.

  • Используйте функцию WinHttpOpen . Укажите тип доступа во втором параметре, имя прокси-сервера в третьем параметре и список обхода в четвертом параметре. В следующем примере показано, как можно использовать функцию WinHttpOpen для задания данных прокси-сервера.

    hSession = WinHttpOpen( L"WinHTTP Example/1.0",  
                            WINHTTP_ACCESS_TYPE_NAMED_PROXY,
                            L"proxy_name", 
                            L"<local>", 
                            0);
    
  • Используйте функцию WinHttpSetOption . Флаг WINHTTP_OPTION_PROXY позволяет указать параметры прокси-сервера со структурой WINHTTP_PROXY_INFO. В следующем примере кода показано, как можно использовать функцию WinHttpSetOption для задания данных прокси-сервера.

    WINHTTP_PROXY_INFO proxyInfo;
    proxyInfo.dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY;
    proxyInfo.lpszProxy = L"proxy_name";
    proxyInfo.lpszProxyBypass = L"<local>";
    
    // Set the proxy information for this session.
    WinHttpSetOption( hSession, 
                      WINHTTP_OPTION_PROXY, 
                      &proxyInfo, 
                      sizeof(proxyInfo));
    

Если вы пишете скрипт или приложение с помощью объекта WinHttpRequest , используйте следующий метод для изменения параметров прокси-сервера.

  • Используйте метод SetProxy. Укажите тип доступа в первом параметре, имя прокси-сервера во втором параметре и список обхода в третьем параметре. В следующем примере показано, как метод SetProxy можно использовать в скрипте для задания данных прокси-сервера.

    WinHttpReq.SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, 
                         "proxy_server:80", 
                         "*.microsoft.com");
    

Чтобы указать параметры по умолчанию и устранить необходимость использования метода SetProxy или функции WinHttpSetOption, используйте программу конфигурации прокси-сервера. С помощью этой служебной программы можно указать, что приложение обращается к сети напрямую, через прокси-сервер или через сочетание прямого и прокси-доступа, указав список обходов. При использовании API WinHTTP средство настройки прокси-сервера определяет только параметры при передаче флага WINHTTP_ACCESS_TYPE_DEFAULT в API WinHttpOpen. Объект WinHttpRequest использует параметры средства настройки прокси по умолчанию.

Параметры прокси-сервера для WinHTTP не являются параметрами прокси-сервера для Microsoft Internet Обозреватель. Параметры прокси-сервера для WinHTTP нельзя настроить в панель управления Microsoft Windows. Использование служебной программы конфигурации прокси-сервера WinHTTP не изменяет параметры, используемые для Обозреватель Интернета.

Примечание.

Если вы пытаетесь открыть и отправить HTTP-запрос с помощью WinHTTP, а параметры прокси-сервера неверны, возникает ошибка.

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

В следующей таблице перечислены параметры командной строки, доступные для использования с инструментом ProxyCfg.exe.

Параметр Description
ничего Если параметры не указаны, отображаются текущие параметры прокси-сервера WinHTTP.
? Отображаются сведения о справке.
d Указывает, что приложения WinHTTP обращаются к сети напрямую без прокси-сервера.
п Указывает прокси-сервер. Кроме того, можно указать необязательный список серверов, к которым обращается без прокси-сервера.
u Указывает, что приложения WinHTTP используют параметры прокси-сервера текущего пользователя для Обозреватель Интернета. Этот параметр не работает, если интернет-Обозреватель автоматически обнаруживает параметры прокси-сервера или используется URL-адрес автоматической настройки для задания сведений о прокси-сервере.
i Указывает, что приложения WinHTTP используют параметры прокси-сервера текущего пользователя для Обозреватель Интернета. Это работает только в том случае, если ProxyCfg.exe ранее не использовался. Если установлен ProxyCfg.exe, укажите, что параметр командной строки u использует параметры вручную. Этот параметр не работает, если интернет-Обозреватель автоматически обнаруживает параметры прокси-сервера или использует URL-адрес автоматической настройки для задания сведений о прокси-сервере.

Вы можете указать прокси-серверы в строке с разделителями пространства. Списки прокси-сервера могут содержать номер порта, используемый для доступа к прокси-серверу. Чтобы получить список прокси-сервера для определенного протокола, строка должна соответствовать формату, <протокол>=https://< proxy_name>. Допустимые протоколы: HTTP и HTTPS. Например, чтобы получить список прокси-сервера HTTP, допустимая строка http=https://http_proxy_name:80, где http_proxy_name — это имя прокси-сервера, а 80 — номер порта, который необходимо использовать для доступа к прокси-серверу. Если прокси-сервер использует номер порта по умолчанию для этого протокола, можно опустить номер порта. Если имя прокси-сервера указано самостоятельно, его можно использовать в качестве прокси-сервера по умолчанию для любых протоколов, у которых нет указанного прокси-сервера. Например, http=https://http_proxy other_proxy использует http_proxy для любых операций HTTP, а протокол HTTPS использует прокси-сервер с именем other_proxy.

В списке обхода прокси-сервера можно перечислить имена узлов или IP-адреса локально известных узлов. Этот список может содержать дикие карта, такие как "*", что приводит к обходу прокси-сервера для адресов, которые соответствуют указанному шаблону, например "*.microsoft.com" или "*.org". Дикие карта символы должны быть левыми в списке. Например, "aaa.*" не поддерживается. Чтобы вывести список нескольких адресов и имен узлов, разделите их пустыми пробелами или точкой с запятой в строке обхода прокси-сервера. Если указать локальный <> макрос, функция пропускает любое имя узла, которое не содержит период.

Предупреждение

После запуска Proxycfg.exe невозможно восстановить предыдущие параметры прокси-сервера. Однако вы можете полностью удалить параметры прокси-сервера.

Использование

Чтобы использовать средство настройки прокси-сервера, откройте окно командной строки и запустите программу настройки прокси-сервера с соответствующими параметрами командной строки. В следующем разделе приведены примеры синтаксиса.

Пример синтаксиса

Пример 1. Использование прокси-сервера только для внешних ресурсов

Ниже приведено наиболее распространенное использование для Proxycfg.exe. Эта команда указывает, что доступ к серверам HTTP и HTTPS выполняется через прокси-сервер с именем "proxy_server", за исключением имен узлов, которые не содержат период.

proxycfg -p proxy_server "<local>"

Пример 2. Использование прокси-сервера для всех ресурсов

В следующем примере указывается, что доступ к серверам HTTP и HTTPS выполняется через прокси-сервер с именем proxy_server. Список обходов не указан.

proxycfg -p proxy_server

Пример 3. Использование другого прокси-сервера для безопасных ресурсов

В следующем примере указывается, что доступ к HTTP-серверам выполняется через прокси-серверы http_proxy и HTTPS-серверы через https_proxy. Локальные сайты интрасети и любой сайт в домене *.microsoft.com обходят прокси-сервер.

proxycfg -p "http=http_proxy https=https_proxy" "<local>;*.microsoft.com"

Удаление ProxyCfg.exe

После использования средства настройки прокси-сервера вы не сможете восстановить исходные параметры прокси-сервера. Однако при необходимости можно удалить параметры реестра, создаваемые программой. Чтобы удалить записи реестра, создаваемые ProxyCfg.exe, необходимо удалить значение WinHttp Параметры из следующего раздела реестра.

\HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Параметры\ Подключение ions\WinHttp Параметры

При удалении значения WinHttp Параметры удаляются все конфигурации прокси-сервера.

ProxyCfg.exe и проверка подлинности

Программа настройки прокси-сервера задает политику проверки подлинности по умолчанию. Так как не следует выполнять проверку подлинности NTLM с ненадежными узлами, по умолчанию проверка подлинности NTLM выполняется автоматически с узлами в списке обхода прокси-сервера. Если прокси-сервер отсутствует, вы по-прежнему можете использовать ProxyCfg.exe, чтобы указать список обходов узлов, которым вы доверяете выполнение проверки подлинности NTLM. Имя прокси-сервера требуется при использовании ProxyCfg.exe для этой цели, но вместо реального прокси-имени можно использовать любую допустимую строку.

Дополнительные сведения о политике автоматического входа см. в разделе "Автоматическая политика входа".