====== Протокол автоматической настройки прокси (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}}