- Linux: как настроить прокси-сервер с помощью скрипта pac
- 3 ответа
- Proxy Auto-Configuration (PAC) file
- Syntax
- Parameters
- Description
- Return value format
- Examples
- Predefined functions and environment
- isPlainHostName()
- Syntax
- Parameters
- Description
- Examples
- dnsDomainIs()
- Syntax
- Parameters
- Description
- Examples
- localHostOrDomainIs()
- Syntax
- Parameters
- Description
- Examples
- isResolvable()
- Syntax
- Parameters
- Examples
- isInNet()
- Syntax
- Parameters
- Examples
- dnsResolve()
- Parameters
- Example
- convert_addr()
- Syntax
- Parameters
- Proxy Auto Configuration (PAC)
- Proxy pac script linux
Linux: как настроить прокси-сервер с помощью скрипта pac
Я использую Red Hat Enterprise Linux Server release 6.2, и у меня есть только terminal доступа (нет GUI). В моей компании есть прокси-скрипт автоматической настройки (PAC), и это единственный способ получить подключение к интернету.
У меня не было никаких проблем с моей машиной windows, так как ее было легко настроить в IE->Tools->Internet Options. Но в Linux, особенно без GUI, кажется, нет никакого способа использовать этот сценарий PAC (я уже некоторое время гуглю). Кстати, в скрипте более 400 строк Javascript.
Кто-нибудь знает, как решить эту проблему?
3 ответа
Я хочу проверить код из репозитория http://code.sixapart.com/svn/ perlbal/ . Я могу получить доступ к репозиторию url только установив прокси-сервер. Думаю, если я хочу получить код от того же URL на svn, мне тоже нужно настроить прокси. Итак, кто-нибудь из вас может сказать мне, как настроить.
Я хотел бы настроить параметры прокси-сервера Java на Solaris для использования скрипта Proxy Auto Config (PAC). Я нашел инструкции по внесению изменений в настройки на машине Windows с помощью панели управления Java, но мне трудно найти, где/как внести те же изменения в настройки на установке.
Настройки прокси-сервера реализуются по-разному в зависимости от используемого программного обеспечения. В графических средах рабочего стола есть инструменты настройки для настройки PAC; браузеры, такие как Chromium и Firefox, обнаруживают текущую среду рабочего стола и импортируют оттуда параметры прокси-сервера; Firefox также используется для предоставления опций ручной настройки прокси-серверов и PAC URLs.
Интеграция параметров прокси-сервера не является приоритетом для разработчиков текстовых пакетов программного обеспечения. Каждый из ваших инструментов должен быть настроен вручную для использования прокси-сервера. Например, APT должен иметь файл конфигурации прокси-сервера в /etc/apt/apt.conf.d/ .
Некоторые пакеты могут обращаться к переменным среды http_proxy , https_proxy и др. для настройки прокси-сервера.
Вам нужно будет прочитать документацию пакетов, которые вы будете использовать в своем GUI-less Linux, чтобы узнать, как настроить каждый из них для использования прокси-сервера компании. Некоторые пакеты будут использовать протоколы и порты, отличные от HTTP(ов), FTP, GOPHER, которые могут быть запрещены брандмауэром компании.
Я знаю, что это старая нить.
В моем случае я сделал следующие шаги
- Загрузите сценарий автоматической настройки и скопируйте адрес прокси-сервера из этого файла.
- экспортируйте «http_proxy» и «https_proxy» в bashrc, используя прокси-адрес, полученный на шаге 1
- Перезагрузите файл bashrc
используйте PAC даже в среде terminal. это работает.
Источник
Proxy Auto-Configuration (PAC) file
A Proxy Auto-Configuration (PAC) file is a JavaScript function that determines whether web browser requests (HTTP, HTTPS, and FTP) go directly to the destination or are forwarded to a web proxy server. The JavaScript function contained in the PAC file defines the function:
Syntax
Parameters
The URL being accessed. The path and query components of https:// URLs are stripped. In Chrome (versions 52 to 73), you can disable this by setting PacHttpsUrlStrippingEnabled to false in policy or by launching with the —unsafe-pac-url command-line flag (in Chrome 74, only the flag works, and from 75 onward, there is no way to disable path-stripping; as of Chrome 81, path-stripping does not apply to HTTP URLs, but there is interest in changing this behavior to match HTTPS); in Firefox, the preference is network.proxy.autoconfig_url.include_path .
The hostname extracted from the URL. This is only for convenience; it is the same string as between :// and the first : or / after that. The port number is not included in this parameter. It can be extracted from the URL when necessary.
Description
Returns a string describing the configuration. The format of this string is defined in return value format below.
Return value format
- The JavaScript function returns a single string
- If the string is null, no proxies should be used
- The string can contain any number of the following building blocks, separated by a semicolon:
DIRECT
Connections should be made directly, without any proxies
The specified proxy should be used
The specified SOCKS server should be used
Recent versions of Firefox support as well:
The specified proxy should be used
The specified HTTPS proxy should be used
SOCKS4 host:port , SOCKS5 host:port
The specified SOCKS server (with the specified SOCK version) should be used
If there are multiple semicolon-separated settings, the left-most setting will be used, until Firefox fails to establish the connection to the proxy. In that case, the next value will be used, etc.
The browser will automatically retry a previously unresponsive proxy after 30 minutes. Additional attempts will continue beginning at one hour, always adding 30 minutes to the elapsed time between attempts.
If all proxies are down, and there was no DIRECT option specified, the browser will ask if proxies should be temporarily ignored, and direct connections attempted. After 20 minutes, the browser will ask if proxies should be retried, asking again after an additional 40 minutes. Queries will continue, always adding 20 minutes to the elapsed time between queries.
Examples
Primary proxy is w3proxy:8080; if that goes down start using mozilla:8081 until the primary proxy comes up again.
PROXY w3proxy.netscape.com:8080; PROXY mozilla.netscape.com:8081; DIRECT
Same as above, but if both proxies go down, automatically start making direct connections. (In the first example above, Netscape will ask user confirmation about making direct connections; in this case, there is no user intervention.)
PROXY w3proxy.netscape.com:8080; SOCKS socks:1080
Use SOCKS if the primary proxy goes down.
The auto-config file should be saved to a file with a .pac filename extension:
And the MIME type should be set to:
Next, you should configure your server to map the .pac filename extension to the MIME type.
Note:
- The JavaScript function should always be saved to a file by itself but not be embedded in a HTML file or any other file.
- The examples at the end of this document are complete. There is no additional syntax needed to save it into a file and use it. (Of course, the JavaScripts must be edited to reflect your site’s domain name and/or subnets.)
Predefined functions and environment
These functions can be used in building the PAC file:
Note: pactester (part of the pacparser package) was used to test the following syntax examples.
- The PAC file is named proxy.pac
- Command line: pactester -p
/pacparser-master/tests/proxy.pac -u http://www.mozilla.org (passes the host parameter www.mozilla.org and the url parameter http://www.mozilla.org )
isPlainHostName()
Syntax
Parameters
The hostname from the URL (excluding port number).
Description
True if and only if there is no domain name in the hostname (no dots).
Examples
dnsDomainIs()
Syntax
Parameters
Is the hostname from the URL.
Is the domain name to test the hostname against.
Description
Returns true if and only if the domain of hostname matches.
Examples
localHostOrDomainIs()
Syntax
Parameters
The hostname from the URL.
Fully qualified hostname to match against.
Description
Is true if the hostname matches exactly the specified hostname, or if there is no domain name part in the hostname, but the unqualified hostname matches.
Examples
isResolvable()
Syntax
Parameters
is the hostname from the URL.
Tries to resolve the hostname. Returns true if succeeds.
Examples
isInNet()
Syntax
Parameters
a DNS hostname, or IP address. If a hostname is passed, it will be resolved into an IP address by this function.
an IP address pattern in the dot-separated format.
mask for the IP address pattern informing which parts of the IP address should be matched against. 0 means ignore, 255 means match.
True if and only if the IP address of the host matches the specified IP address pattern.
Pattern and mask specification is done the same way as for SOCKS configuration.
Examples
dnsResolve()
Parameters
hostname to resolve.
Resolves the given DNS hostname into an IP address, and returns it in the dot-separated format as a string.
Example
convert_addr()
Syntax
Parameters
Any dotted address such as an IP address or mask.
Concatenates the four dot-separated bytes into one 4-byte word and converts it to decimal.
Источник
Proxy Auto Configuration (PAC)
В рунете мало информации об такой замечательной вещи как «Автоматическая настройка прокси сервера». В этой статье я постараюсь подробно остановиться на данном вопросе.
Суть технологии заключается в том, что браузер читает специальный файл написаный на языке JavaScript, в котором определена только одна функция:
function FindProxyForURL(url, host)
<
.
>
где,
url – полный URL запрашиваемого документа
host – имя поста извлекаемое из URL. Этот параметр необходим только для удобства. Он содержит всё от :// и до первого / или :. Номер порта не включается в этот параметр.
Функция возвращает строку содержащую один или несколько способов доступа к запрашиваемому документу. Формат строки следующий:
null — если строка null, то использовать прокси сервер не нужно;
DIRECT — прямое соединение без использования прокси;
PROXY host:port — определяет какой прокси сервер необходимо использовать;
SOCKS host:port — определяет SOCKS сервер который необходимо использовать.
Строка может содержать несколько приведенных выше параметров разделенных точкой с запятой. Тогда браузер будет перебирать их по очереди пока не найдёт доступный прокси сервер.
В главной функции могут быть вызваны следующие функции:
- isPlainHostName(host) возвращает true если строка host не содержит точек («.»).
- dnsDomainIs(host, domain) вернет true если domain принадлежит host
- localHostOrDomainIs(host, hostdomain) возвращает true если строка host (имя хоста или домена) содержится в строке hostdomain
- isResolvable(host) возвращает true если возможно определить IP адрес для заданной строки host
- isInNet(host, pattern, mask) возвращает true если IP адрес или имя хоста в строке host соответствует шаблону pattern и маске mask
- dnsResolve(host) возвращает IP адрес для заданного host
- myIpAddress() возвращает IP адрес компьютера
- dnsDomainLevels(host) возвращает количество точек в строке host. Другими словами уровень домена
- shExpMatch(str, shellexp) вернет true если строка str соответствует регулярному выражению в строке shellexp (формат регулярных выражений shellexp, а не regexp). Например shExpMatch(«a/b/c»,»*/b/*») вернет true
- weekdayRange(wd1 [, wd2 ][, «GMT«]) вернет true если текущая дата или дата заданная в параметре GTM, соответствует заданному дню недели или диапазону дней. Дни недели записываются в закавыченной строке из следующих вариантов (SUN|MON|TUE|WED|THU|FRI|SAT)
- dateRange([day1] [,month1] [,year1] [,day2] [,month2] [,year2] [,»GMT«]) вернет true если текущая дата или дата заданная в параметре GTM попадает в указанный диапазон. Название месяца задается закавыченной строкой из следующих вариантов (JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)
- timeRange(hour1, minute1, second1, hour2, minute2, second2 [, «GMT«])
- timeRange(hour1, minute1, hour2, minute2 [, «GMT«])
- timeRange(hour1, hour2 [, «GMT«])
- timeRange(hour [, «GMT«])
Браузеры Firefox и Internet Explorer поддерживает только системную кодировку в PAC файле и не поддерживают Unicode кодировки, такие как UTF-8.
Источник
Proxy pac script linux
Возникла необходимость автоматически настраивать прокси для всех компьютеров и не бегать к ним, если, например, поменялось что-то на прокси сервере. Для этого существует технология Proxy Auto Configuration (PAC).
Создание файла автоконфигурации прокси
Большинство браузеров можно автоматически сконфигурировать для использование прокси. Данная возможность реализуется при помощи Proxy Auto Configuration (PAC). PAC — файл, в котором содержится только одна функция JavaScript — FindProxyForURL ().
Создадим файл будущего скрипта:
И немного ознакомимся с основными понятиями:
Теперь необходимо указать нужные настройки для браузеров. Возможен выбор из двух вариантов, используйте тот, который вам удобнее, например, я использую второй вариант.
Web Proxy Auto-Discovery protocol
Подготовка Apache
Необходимо, чтобы Apache выдавал скрипт при запросе. Для этого надо разрешить обращаться к файлам типа .dat:
1. Добавим в httpd.conf дерективу
WPAD метод основанный на DNS
Механизм WPAD просто строит цепочку известных URL, начинающихся с доменного имени машины и оканчивающего коротким суффиксом wpad.
Например, доменое имя было example.com., то URL будет следующий:
Таким образом, браузер будет пытатся загрузить PAC скрипт известного доменного URL.
Для реализации данного метода сделаем следующее:
1. Создим в DNS имя и присвоим ему IP
Например, создаем запись wpad.example.com с IP адресом 192.168.1.12 или создаем alias на существующий хост (что удобнее).
2. Создадим в Apache виртуальный хост с именем wpad.example.com
3. Скопируем скрипт wpad.dat в директорию виртуального хоста
Второй метод WPAD, основанный на DHCP
WPAD просто выдает PAC скрипт с выбранный номером 252 в «аренду» запросившему IP. Браузер получает URL скрипта и просто качает его по ссылке.
1. Добавим в /etc/dhcp/dhcpd.conf следующие строчки.
2. Перезапустите DHCP сервер.
Небольшой нюанс — у DHCP приоритет выше, чем у DNS, как следствие — гораздо быстрее. И можно вместо имени сайта указать его IP, в этом случае отсутствуют расходы времени на преобразование адреса в имя, что добавляет скорости.
Теперь настроим браузер. В параметрах программы нужно указать определение прокси-сервера:
1) В браузере Explorer
Сервис -> Свойства обозревателя -> Подключения -> Настройка сети
поставим галочку напротив опции «Автоматическое определение параметров»
или поставим галочку напротив опции «Использовать сценарий автоматической настройки» и в поле «Адрес» напишем http://wpad.example.com:80/wpad.dat
2) В браузере Opera
Настройки -> Дополнительно -> Сеть -> Прокси-серверы
поставим галочку напротив опции «Автоматическая конфигурация прокси-сервера» и в поле «Адрес» написать http://wpad.example.com:80/wpad.dat
3) В браузере Firefox
Инструменты->Настройки->Дополнительно->Сеть->Соединение(Настроить)
выберем опции «Автоматически определять настройки прокси для этой сети»
или выберем опцию «URL автоматической настройки сервиса прокси» и в поле «Адрес» напишем http://wpad.example.com:80/wpad.dat
Нажмите кнопку Обновить, чтобы загрузить настройки.
В версии 3.0.1 нормально не работает «Автоматически определять настройки прокси для этой сети» или нужно дополнительно по гуглить =).
Отдельное спасибо Andy за помощь в редактировании статьи =)
размещено: 2008-07-31,
последнее обновление: 2008-08-01,
автор: Raven2000
Хорошо бы упомянуть про вариант fallback:
«PROXY IP_proxy:3128; DIRECT»
Помогает, если прокси лежит.
Баян, но полезный. Почти всё в одном месте. Спасибо.
Kolesya, 2008-08-01 в 8:25:55
Если расширение файлу поставить wdat.pac апач перенастраивать не придется 🙂
Sash, 2008-08-01 в 9:12:43
Хм.. я вот не понимаю зачем это вообще нужно, если прокси как правило юзается в больших офисах, где 99% стоит AD. Используя GPO можно изменять адрес прокси не поднимая задницы со стула, да и правила ipfw fwd тоже никто не отменял на шлюзе из freebsd. нафига козе бойан? или я что-то не понимаю?
Не зацикливайтесь на продуктах M$
Во многих больших и крупных конторах за стандарт идёт Firefox
Shemmy, 2008-08-01 в 10:11:06
Есть уточнение. В автоконфигурирования по DHCP надо применять значение
option local-pac-server «http://wpad.example.com:80/wpad.dat\000»;
Internet Explorer отрезает последний символ в строке.
И как показала практика автоконфигурирование по DHCP работает только для Internet Explorer
Antonio, 2008-08-01 в 10:16:24
Как-то тоже настраивал, но не пошло, потому как только для IE, а это можно задать и в групповых политиках.
to hsw
см в конце все на return «DIRECT»; разве не то?
to Kolesya
Самое интересное, что я при выпуске статьи это урезал
А было в статье еще
+ AddType application/x-ns-proxy-autoconfig .pac
+ Redirect / wpad.dat / proxy.paс
+ ln -s wpad.dat proxy.paс
to Sash
У меня так и есть на работе =) НО в домашней сети, где каждый сам ПК по себе и нет серверов маздая то это самое то и без разговоров =) Да и не забудь, бывает и шлюзов с фри нет и прокси на маздае нет и бессмысленно ставить AD =)
Да и у каждого от Сафари до Мозиллы
to Shemmy
пробовал с \000 и без разницы небыло замеченно тестил на IE, Firefox, Opera так что я это из статьи выкинул тк смысла не увидел (может не прав =) еще раз потестю).
Да и на счет IE про автоконфиг по DHCP ты прав в самую точку, но я в статье это указал В Опере авто по DHCP нет, а в Firefox нормально не пашет, что и написал
to Antonio
Ты не прав это не только для IE, а для всех грамотных браузерах работает и на счет AD писал для Kolesya выше
Shemmy, 2008-08-01 в 12:07:18
to Raven2000
IE кеширует настроки прокси. в Групповой политике есть настройка отключающая кеширование.
to Raven2000
Нет, не то.
Если сработает правило с «PROXY: . «, а прокси не ответит, браузер покажет ошибку.
Если будет «PROXY: . ; DIRECT» — через таймаут пойдёт DIRECT-ом.
Можно указать несколько проксей в порядке уменьшения приоритета.
to Shemmy & hsw
Fixed
Что еще можно добавить?
to Raven2000
упс. retrurn «. «;
«;» в конце не хватает.
Блин фсе %0 сказывается последний день на работе и в отпуск =)
savio, 2008-08-02 в 21:47:35
а не проще сделать «прозрачный» прокси на серваке? на стороне юзера вообще ничего делать не нужно
С автонастройкой в IE тоже ничего делать не надо.
Она включена по умолчанию.
Да, и прозрачный прокси для https, ftp и socks сделать проблематично.
Смотрите ширше. Включение wpad.
.com позволяет загонять клиентов с реальными адресами на proxy провайдера.
Dima, 2008-08-03 в 15:38:58
Не зацикливайтесь на продуктах M$
Во многих больших и крупных конторах за стандарт идёт Firefox
Хотел бы я увидеть те большое компании которые используют Firefox за стандарт 🙂
К сожаление, большинство прог заточенно как раз по ИЕ.
ostrik, 2012-07-06 в 12:55:09
Перед тем как пользоваться протоколом WPAD, обратите внимание на эту статью — http://www.securitylab.ru/analytics/379619.php
после добавления:
AddType application/x-ns-proxy-autoconfig .dat
файл не открывается а пытается скачиваться
зато без неё всё намана 😉
Ховди ttys, ты погляди на сам формат mime:
# MIME type           Extensions
# application/3gpp-ims+xml
# application/activemessage
application/andrew-inset       ez
# application/applefile
application/applixware         aw
application/atom+xml         atom
application/atomcat+xml         atomcat
Добавляй без точки:
# Add WPAD type
AddType application/x-ns-proxy-autoconfig dat
2 Юрий,
я забил на это т.к. решил отказаться от прокси и потушил сквид 😉
но спс за подсказку =)
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов. 2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540 2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма 2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh 2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ 2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией. 2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat 2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp. 2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл. 2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления… 2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий. 2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp. 2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG 2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк 2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты. 2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации. 2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =) 2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы — ZFS 2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
|
Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
Источник