Comment configurer Atom pour utiliser les paramètres de fichier proxy (pac)?
sous Windows, est-il possible de configurer Atom pour utiliser le proxy par défaut du système au lieu de spécifier manuellement les paramètres du proxy dans le .apmrc fichier?
j'ai récemment commencé à utiliser le atom-éditeur pour Windows (Windows 7 Pro) et pour l'instant je l'aime. J'ai cherché pendant un certain temps pour essayer d'obtenir l'éditeur pour être en mesure de se connecter au monde extérieur et n'ont pas rencontré de succès.
Notre network (Je ne suis pas un expert en réseau) est configuré pour utiliser un serveur proxy (interne) pour accéder à internet. Sur mon système, ceci est réalisé dans les paramètres proxy avec un 'Script de Configuration automatique', par exemple:http://internal-server-name/sub-dir/file-name.pac
.
de nombreuses ressources ont suggéré de définir manuellement les informations de proxy dans le .apmrc fichier:
- pas capable de se connecter à l'atome.io pour les thèmes et les paquets
- here:https://discuss.atom.io/t/is-there-any-proxy-settings/710/19
- https://github.com/atom/atom/issues/1807
ne pas répondre à ma question que j'en ai besoin le système par défaut
J'ai essayé de configurer Atom pour faire la même chose mais quand je change le .apmrc fichier:
http-proxy = http://internal-server-name/sub-dir/file-name.pac
https-proxy = https://internal-server-name/sub-dir/file-name.pac
strict-ssl = false
j'obtiens l'erreur suivante (probablement parce que l'adresse ci-dessus n'est pas le mandataire lui-même):
tunneling socket could not be established, cause=Parse Error
Quand je sors de l' .apmrc fichier non imbriqué, je reçois l'erreur suivante en essayant de visualiser les paquets:
getaddrinfo ENOTFOUND
même si j'avais une adresse IP de serveur proxy et un numéro de port à spécifier, non seulement je ne voudrais pas forcer mes identifiants dans un fichier de configuration mais je suis presque sûr que l'authentification est en quelque sorte configurée pour utiliser des tokens Kerberos de toute façon, donc je ne serais pas en mesure de spécifier à tous les.
il est intéressant de noter que les mises à jour Atom indiquent que mes paquets installés (sortis de la boîte) sont à jour, ce qui semble indiquer que cette partie fonctionne alors que les paquets et les thèmes ne fonctionnent pas.
voici quelques screenshots pour référence:
Aucun .apmrc change
serveur mandataire spécifié dans .apmrc
Modifier 08/31/2015
En réponse à certains commentaires, j'ai essayé d'afficher la .pac fichier et extraire l'adresse du serveur mandataire. J'ai pu extraire l'information sur le mandataire du fichier et la mettre dans le .apmrc mais cela n'a eu aucun effet sur le résultat (je reçois toujours les mêmes erreurs). J'ai aussi depuis essayé d'utiliser CNTLM pas de succès.
notez aussi que mon mandataire besoin d'authentification comme indiqué ci-dessus. J'ai fait d'autres recherches sur cette question et il peut être une combinaison de paramètres de proxy pour l' APM
et les paramètres proxy pour GitHub. Voir la suite de l'article concerné:
- https://discuss.atom.io/t/error-running-apm-install-behind-proxy/14812
idéalement, je voudrais une solution qui ne nécessite pas un une configuration machine ou une configuration de fichier multi-configuration fragile.
3 réponses
.pac
file est juste un fichier javascript que les navigateurs peuvent exécuter pour déterminer par programmation quel proxy utiliser. Ceci est utile si votre réseau a besoin d'utiliser différents mandataires pour accéder à différentes ressources. Si vous ouvrez ce fichier, vous serez probablement en mesure d'en donner un sens (c'est juste javascript, après tout) et de comprendre quel proxy votre réseau utilise pour un accès général au web. Définissez cela comme votre mandataire dans votre .apmrc
et ça devrait marcher.
les choses deviennent plus compliqué si votre proxy nécessite une authentification. Si c'est votre problème, faites le moi savoir. J'ai une certaine expérience de traiter avec elle.
Authentification
OK, donc vous devez vous authentifier. Alors votre situation est probablement assez similaire à la mienne. Vous avez raison en utilisant CNTLM, nous avons juste besoin de le configurer correctement. Votre cntlm.ini
le fichier devrait ressembler à quelque chose comme ceci:
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)>
Il y a quelque chose d'un peu drôle que vous devez savoir à propos de ce fichier (cntlm.ini
). Lorsque vous installez cntlm, il est inclus dans le dossier du programme mais il ne fonctionnera que s'il est situé à C:\Program Files (x86)\cntlm\cntlm.ini
. Je suppose que c'est probablement plus exact de dire qu'il devrait être dans le cntlm
dossier à l'intérieur du PROGRAMFILES
répertoire donc vous devriez vérifier que c'est le cas.
quoi qu'il en soit, après avoir fait tout cela, vous pouvez maintenant commencer cntlm
(instructions dans le readme). Ensuite, vous devez configurer apm
pour réellement utiliser votre proxy local. Votre .apmrc
devrait ressembler à ceci:
http-proxy = http://localhost:<port # from cntlm.ini>
https-proxy = https://localhost:<port # from cntlm.ini>
strict-ssl = false
on pourrait penser que cela suffirait, mais il y a plus qui pourrait aider. J'ai eu beaucoup de problèmes avec npm
jusqu'à ce que j'ai trouvé que https
ne fonctionne pas bien par cntlm
j'ai donc dû changer mon registre de https://registry.npmjs.org/
http://registry.npmjs.org/
. Depuis apm
utilise également le même registre, j'ai décidé de changer ça aussi:
apm config set registry http://registry.npmjs.org/
Et puis... il semble également aider à aller dans l'Atome config.cson
et définissez core.proxy
http://localhost:<port # from cntlm.ini>
et après tout ça, je m'attendais à ce que les choses marchent pour vous. Si c'est cool et beaux et de l'Atome fonctionne bien, il ya une chose que vous pourriez faire pour la plupart (toutes?) d'autres applications (mnp, git, etc) fonctionnent bien. Sur la ligne de commande, exécutez la commande:
netsh winhttp set proxy localhost:<port # from cntlm.ini> "localhost, 127.0.0.*"
cela vous évitera la difficulté de configurer la plupart (tous?) d'autres applications une par une. Pour une raison quelconque, apm
doit être configuré spécifiquement. Je suppose qu'il n'utilise pas les paramètres winhttp pour une raison quelconque? Je ne connais pas la réponse à cette question.
Nouvelle Info 2016/03/18
j'ai récemment remarqué qu'il y a une chose supplémentaire que vous pourriez avoir besoin de faire pour certaines applications. Vous devriez également définir les variables d'environnement suivantes à votre mandataire local:
HTTP_PROXY
HTTPS_PROXY
FTP_PROXY
http_proxy
https_proxy
ftp_proxy
Il peut sembler excessif pour définir à la fois les majuscules et les minuscules, mais j'ai récemment installé MSys2 et trouvé qu'il recherche les minuscules versions les à portée de tous et vous épargner un peu difficulté.
Vous devez télécharger le fichier http://internal-server-name/sub-dir/file-name.pac
et l'ouvrir avec un éditeur de texte, puis trouver l'adresse réelle du proxy et le port à l'intérieur (près d'un PROXY
mot clé).
j'ai utilisé ceci pour mes problèmes avec la npm et .npmrc
c:\users\%user%\.atom\.apmrc
(ajouter s'il n'existe pas) et de mettre ce
proxy=http://YOUR-DOMAIN**%5C**USER-NAME:PASSWORD@YOUR-PROXY-SERVER:PORT/