WPAD (Web Proxy Auto-Discovery Protocol)
Протокол автоматической настройки прокси — метод, используемый клиентами для определения места (URL) расположения конфигурационного файла с использованием технологий DHCP и/или DNS.
После того, как определено местоположение файла конфигурации и сам файл получен, клиент использует его для определения, каким прокси воспользоваться для каждого конкретного URL.
WPAD протокол только определяет механизм поиска файла конфигурации, а вместе с ним чаще всего используется формат конфигурационного файла разработанный фирмой Netscape в 1996 для Netscape Navigator 2.0.
Нужно создать файл wpad.dat, который будет доступен для чтения всем пользователям в локальной сети.
1. Настроить сервер HTTP, например 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 задав для сервера имя wpad
в локальном домене
4. Настроить сервер DHCP
URL должен быть таким: http://wpad/wpad.dat
Протестировано с следующими прокси серверами:
Для старых браузеров рекомендуется создать ссылки на основной файл:
#!/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/