====== Протокол автоматической настройки прокси (WPAD) ====== WPAD (Web Proxy Auto-Discovery Protocol) Протокол автоматической настройки прокси — метод, используемый клиентами для определения места (URL) расположения конфигурационного файла с использованием технологий DHCP и/или DNS. После того, как определено местоположение файла конфигурации и сам файл получен, клиент использует его для определения, каким прокси воспользоваться для каждого конкретного URL. WPAD протокол только определяет механизм поиска файла конфигурации, а вместе с ним чаще всего используется формат конфигурационного файла разработанный фирмой Netscape в 1996 для Netscape Navigator 2.0. ====== Настройка ====== FIXME Нужно создать файл wpad.dat, который будет доступен для чтения всем пользователям в локальной сети. 1. Настроить сервер HTTP, например [[mini-httpd:mini-httpd|Mini-HTTPd]] 2. В корень сервера HTTP нужно положить файл ''wpad.dat'' Пример: function FindProxyForURL(url, host) { // Если URL не содержит точек в адресе, то работаем напрямую. if ( isPlainHostName(host) ) return "DIRECT"; // Локальные адреса с которыми нужно работать напрямую. if ( shExpMatch(url,"http://*.domain.ru") || shExpMatch(url,"https://*.domain.ru") || shExpMatch(url,"ftp://*.domain.ru") ) return "DIRECT"; // Специально для СБиС онлайн if (shExpMatch(url,"*.sbis.ru*"))return "PROXY proxy:3128"; // Локальные IP адреса с которыми нужно работать напрямую. var resolved_ip = dnsResolve(host); if ( isInNet(resolved_ip, "127.0.0.0", "255.255.255.0") || isInNet(resolved_ip, "10.0.0.0", "255.0.0.0") || isInNet(resolved_ip, "192.168.0.0", "255.255.0.0") ) return "DIRECT"; // Разные варианты прокси серверов по проторолам if (shExpMatch(url, "http:*")) return "PROXY proxy:3128"; if (shExpMatch(url, "https:*")) return "PROXY proxy:3128"; if (shExpMatch(url, "ftp:*")) return "PROXY proxy:3128"; if (shExpMatch(url, "ws:*")) return "SOCKS proxy:1080"; if (shExpMatch(url, "wss:*")) return "SOCKS proxy:1080"; } 3. Настроить [[dns:dns|сервер DNS]] задав для сервера имя ''wpad'' в локальном домене 4. Настроить [[dhcp:dhcp|сервер DHCP]] URL должен быть таким: http://wpad/wpad.dat Протестировано с следующими прокси серверами: * [[squid:squid|Squid]] * [[dante_socks_server:dante_socks_server|Dante SOCKS server]] Для старых браузеров рекомендуется создать ссылки на основной файл: #!/bin/bash www_root=/var/www/html cd $www_root ln -s wpad.dat wpad.da ln -s wpad.dat proxy.pac ====== Тестирование ====== Утилита для тестирования PACtester: [[http://code.google.com/p/pactester/]] ====== Ссылки ====== [[http://web.archive.org/web/20060424005037/wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html|Navigator Proxy Auto-Config File Format (March 1996)]] https://ru.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol https://wiki.debian.org/ProxyAutodetectConf [[http://findproxyforurl.com|FindProxyForURL]] http://en.wikipedia.org/wiki/Proxy_auto-config [[https://habrahabr.ru/sandbox/19972/|habrahabr.ru: Proxy Auto Configuration (PAC)]] [[http://www.lissyara.su/articles/freebsd/trivia/proxy_auto_configuration/|Proxy Auto Configuration (PAC)]] {{tag>Proxy HTTP}}