На моем компьютере с Linux мне нужно использовать прокси-сервер ISA, который требует аутентификации для доступа в Интернет. Поэтому я установил CNTLM и настроил его так, чтобы он указывал на адрес прокси-сервера и прослушивал порт 4321.
Затем я настроил свой дистрибутив GNOME на использование localhost: 4321 в качестве глобального прокси для HTTP и HTTPS.
Результат: я могу подключиться к Интернету. Я могу пинговать IP-адреса интрасети, я получаю разрешение имен для сайтов интрасети, но я не могу пинговать их или открывать любой сайт интрасети в браузере (настроенном на использование прокси-сервера распространения), если я не использую IP-адрес сайта.
Я безуспешно пытался заблокировать диапазон IP-адресов интрасети в файле конфигурации CNTLM.
Похоже, прокси-сервер ISA некорректно разрешает имена хостов интрасети. Одно из решений - написать автоконфигурация прокси файл, который сообщает клиенту, когда и какой прокси использовать. Это не работает с программами CLI, которые используют http_proxy
, но по крайней мере будет работать в браузерах.
Сохраните это в файл вроде ~/proxy.pac
и измените в соответствии с вашей средой. В конфигурации прокси-сервера GNOME выберите параметр «Автоматическая конфигурация прокси-сервера» и введите расположение этого файла как file://
URL, например file:///home/htorque/proxy.pac
.
function FindProxyForURL(url, host)
{
// Strip port number
host = host.replace(/:\d*/, "");
// Local destinations
if ( isPlainHostName(host) ||
dnsDomainIs(host, ".local") ||
dnsDomainIs(host, ".mycompany") ||
shExpMatch(host, "127.*.*.*") ||
shExpMatch(host, "10.*.*.*") ||
shExpMatch(host, "192.168.*.*") )
return "DIRECT";
// External destinations
return "PROXY localhost:3128";
}