Ответ 1
A .pac
файл - это просто файл javascript, который браузеры могут запускать, чтобы программно определить, какой прокси использовать. Это полезно, если вашей сети необходимо использовать разные прокси для доступа к различным ресурсам. Если вы откроете этот файл, вы, вероятно, сможете это понять (это просто javascript, в конце концов) и выяснить, какой прокси-сервер использует ваша сеть для общего доступа в Интернет. Установите это как ваш прокси-сервер в свой файл .apmrc
, и он должен работать.
Все становится сложнее, если ваш прокси требует какой-либо проверки подлинности. Если это ваша проблема, дайте мне знать. У меня есть некоторый опыт, связанный с этим.
Проверка подлинности
ОК, поэтому вам нужно пройти аутентификацию. Тогда ваша ситуация, вероятно, очень похожа на мою. Вы правильно используете CNTLM, нам просто нужно настроить его правильно. Ваш файл cntlm.ini
будет выглядеть примерно так:
Username <your windows username>
Domain <your domain name>
Password <leave this blank>
PassLM <get this by running `cntlm -H` on the command line>
PassNT <get this by running `cntlm -H` on the command line>
PassNTLMv2 <get this by running `cntlm -H` on the command line>
Proxy <Your proxy address like ip_address:port>
Proxy <If you have multiple proxies, you may list them each on a new line>
NoProxy localhost, 127.0.0.*, <any others that should bypass the proxy>
Listen <a local port to listen on (I use 53128)>
Там что-то смешное, что вы должны знать об этом файле (cntlm.ini
). Когда вы устанавливаете cntlm, он включается в папку программы, но фактически работает, только если он находится в C:\Program Files (x86)\cntlm\cntlm.ini
. Вероятно, более вероятно сказать, что он должен находиться в папке cntlm
внутри каталога PROGRAMFILES
, поэтому вам следует дважды проверить, что это так.
В любом случае, выполнив все это, вы можете начать cntlm
(инструкции в readme). Затем вам нужно настроить apm
, чтобы на самом деле использовать ваш локальный прокси. Ваш .apmrc
должен выглядеть следующим образом:
http-proxy = http://localhost:<port # from cntlm.ini>
https-proxy = https://localhost:<port # from cntlm.ini>
strict-ssl = false
Вы бы подумали, что этого будет достаточно, но там больше, что может помочь. У меня было много проблем с npm
, пока я не обнаружил, что https
не работает хорошо через cntlm
, поэтому мне нужно было изменить свой реестр с https://registry.npmjs.org/
на http://registry.npmjs.org/
. Поскольку apm
также использует тот же реестр, я тоже решил изменить это:
apm config set registry http://registry.npmjs.org/
И затем... он также помог войти в Atom config.cson
и установить core.proxy
на http://localhost:<port # from cntlm.ini>
И после всего этого, я ожидаю, что все будет работать на вас. Если это здорово и нормально, и Atom работает хорошо, еще одна вещь, которую вы можете захотеть сделать, заставит большинство (все?) Других приложений (npm, git и т.д.) Работать хорошо. В командной строке выполните:
netsh winhttp set proxy localhost:<port # from cntlm.ini> "localhost, 127.0.0.*"
Это избавит вас от необходимости конфигурировать большинство (все?) других приложений один за другим. По какой-то причине apm
необходимо настроить именно так. Я полагаю, что по какой-то причине он не использует настройки winhttp? Я не знаю ответа на это.
Новая информация 2016/03/18
Недавно я заметил, что для некоторых приложений вам может понадобиться еще одна вещь. Вы также должны установить следующие переменные среды для своего локального прокси:
HTTP_PROXY
HTTPS_PROXY
FTP_PROXY
http_proxy
https_proxy
ftp_proxy
Может показаться, что overkill устанавливает как верхний, так и нижний регистр, но я недавно установил MSys2 и обнаружил, что он ищет версии в нижнем регистре, поэтому просто установите их все и сберегите некоторые проблемы.