Недавно столкнулся с настройкой Web Proxy Auto-Discovery и решил опубликовать статью, по которой можно легко и быстро настроить WPAD в домене Active Directory.
Как работает WPAD (_DNS-обнаружение_)?
Если у вас включена настройка «автоматическое определение настроек», то при подключении к Internet браузер попытается найти сервер wpad.<имя-вашего-домена>. Если оно не обнаружено, то браузер будет добавлять «wpad» ко всем именам доменов уровнем выше (вплоть до 3-го уровня). Например, если клиент находится в домене a.b.microsoft.com, то Internet Explorer будет искать сервера: wpad.a.b.microsoft.com
wpad.b.microsoft.com
wpad.microsoft.com
Если один из серверов найден, то браузер в корневом каталоге будет пытаться обнаружить файл wpad.dat . Если этот файл существует, то он будет использован в качестве скрипта при подключении к Internet (PAC-файл).
Как настроить WPAD?
# Создайте стандартный файл Proxy Auto-Config (PAC).
Пример файла:
function FindProxyForURL(url, host)
{
// If URL has no dots in host name, send traffic direct.
if (isPlainHostName(host))
return "DIRECT";
// If specific URL needs to bypass proxy, send traffic direct.
if (shExpMatch(host,"*domain.local*") ||
shExpMatch(host,"*domain2.local*") ||
shExpMatch(host,"mail.domain.ru") ||
shExpMatch(host,"ftp.domain.ru") ||
shExpMatch(host,"192.168.*") ||
shExpMatch(host,"127.*") ||
dnsDomainIs(host,".domain.local") )
return "DIRECT";
// All other traffic uses below proxies, in fail-over order.
return "PROXY 192.168.xxx.xxx:8080";
}
# Сохраните этот файл в корневом каталоге вашего web-сервера (из вашего домена) под именем wpad.dat
При необходимости вы можете использовать HTTP редирект, и сохранить этот файл где-либо еще:
Redirect /wpad.dat http://other.server.com/proxy.pac
# Убедитесь, что этот файл Вы можете открыть в браузере по адресу:
http://www.<имя-вашего-домена>/wpad.dat , например:
http://www.web.server.ru/wpad.dat
# Добавьте следующую строку в файл mime.types на вашем сервере (если у вас на сервере есть уже такая строка для pac файлов, добавьте к ней «dat»):
application/x-ns-proxy-autoconfig .dat после чего перегрузите ваш web-сервер, чтобы эта настройка применилась.
# Создайте запись DNS на вашем сервере, которая позволит распознавать имя wpad.<имя-вашего-домена> в IP-адрес вашего web-сервера (дополнительное имя web-сервера, alias). Или же вы можете использовать файл hosts вашего компьютера, для создания связи: wpad.your.domain.name <IP-address your web-server>
# В Internet Explorer 5 или выше, меню «Tools» («Сервис»), «Internet Options» («Свойства обозревателя»), «Connections» («Подключение»), «Settings» or «LAN Settings» («Настройка сети» или «Настройка локальной сети»), установите только «Use Automatic Configuration Script» («Использовать сценарий автоматической настройки») и пропишите там адрес, где находится ваш файл wpad.dat, например: http://wpad.your.domain.name/wpad.dat
# Убедитесь, что все работает с использованием вашего скрипта (файла wpad.dat). Не переходите к следующему пункту до тех пор, пока не убедитесь, что все функционирует корректно…
# Теперь вернитесь к экрану настройки конфигурации proxy, описанному в шаге 6, и отключите все флажки за исключением «Automatically Detect Settings» («Автоматическое определение настроек»). Если этот флажок был включен, то выключите его, перегрузите браузер, и снова включите.Теперь перезапустите Internet Explorer.
Дополнение
В DNS-сервере кроме записи A или CNAME необходимо создать запись SRV:_tcp._wpad.domain.local
Дополнение 2
Microsoft DNS-сервер по умолчанию блокирует DNS-запись WPAD. Для её разблокировки необходимо установить Support tools и выполнить команду:
dnscmd /config /enableglobalqueryblocklist 0 — подробнее тут
Сделал перевод официальной информации и обобщил настройку WPAD:
http://ubuntu-faq.blogspot.ru/2013/11/wpad-proxy-pac.html
А подскажите, пожалуйста, как сделать так что бы сначала обработался локальный PAC и в случаи некоторого условия пошел редирект на другой PAC в домене?
К сожалению, не подскажу. Не в курсе…
Необходимо скрыть свой ip.. пробовал, вписывал ip других стран, порт нажимал ok. Вроде все нормально. Но проверяю свой ip, вижу что такой же…
Windows 7 Explorer 9 Помогите, может поделетесь ссылкой там где полная инструкция оп использованию прокси серверов.. Хотя я сам уже по инструкциям все делал, ничего не получается..
Спасибо
«Но проверяю свой ip, вижу что такой же…»
Как проверяете?
Здравствуйте, спасибо за статью. Подскажите пожалуйста, как будет работать IE дома, когда не сможет найти wpad ???
Думаю, что будет долго искать, а потом пойдет напрямую, без настроек прокси.
Хм, ну по идее должно работать… Ошибок нет?
Подскажите пожалуйста, а как создать то такую запись?
SRV:_tcp._wpad.domain.local
то, что мы выбираем тип создать другой тип записи и выбираем SRV, понятно, не понятно как дальше?
То есть «дальше»?
Ну, дальнейшие параметры?
я настроил запись
srv
_tcp
домен dom.local
служба wpad
протокол _tcp
приоритет 0
вес 100
порт 8585
узел этой службы wpad.dom.local
Правильно?
Использовать сценарий — работает.
автодетект — не работает.
А ссылка http://wpad.dom.local/wpad.dat работает?
Да, файл скачивается.
я про глобальный список блокировки, разве он не с 2008?
не увидел, что это всё справедливо начиная с w2k8
Я делал на win2k3
Стоит дополнить, что шиндовс по умолчанию блокирует dns-запись wpad.
Для отключения этой блокировки придется ставить Windows support tools, затем выполнить «dnscmd /config /enableglobalqueryblocklist 0″(ноль)
Подробнее
P.S. Извините, что не в одном посте, ибо только что вспомнил.
Да, об этом я тоже узнал немного позже, но забыл дополнить в статью.
Спасибо =)
Спасибо за статью!
Вы очень мне помогли.