Comment configurer Atom pour utiliser les parameters 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 parameters de proxy dans le fichier .apmrc ?


J’ai récemment commencé à utiliser l’ atome-editor pour Windows ( Windows 7 Pro ) et jusqu’à présent, je l’aime bien. J’ai cherché pendant un certain temps à essayer de faire en sorte que l’éditeur soit capable de se connecter au monde extérieur et n’a rencontré aucun succès.

Notre réseau (je ne suis pas un expert réseau) est configuré pour utiliser un serveur proxy (interne) pour accéder à Internet. Sur mon système, cela se fait dans les parameters du 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 fichier .apmrc :

  • Impossible de se connecter à atom.io pour les thèmes et les packages
  • ici: https://discuss.atom.io/t/is-there-any-proxy-settings/710/19
  • https://github.com/atom/atom/issues/1807

Ceux-ci ne répondent pas à ma question car j’ai besoin que le système fonctionne par défaut

J’ai essayé de configurer Atom pour faire la même chose mais quand je change le fichier .apmrc pour avoir:

 http-proxy = http://internal-server-name/sub-dir/file-name.pac https-proxy = https://internal-server-name/sub-dir/file-name.pac ssortingct-ssl = false 

Je reçois l’erreur suivante (probablement parce que l’adresse ci-dessus n’est pas le proxy lui-même):

 tunneling socket could not be established, cause=Parse Error 

Lorsque je laisse le fichier .apmrc non modifié , je reçois l’erreur suivante lorsque vous essayez d’afficher les packages:

 getaddrinfo ENOTFOUND 

Même si j’avais une adresse IP et un numéro de port de serveur proxy à spécifier, non seulement je ne voudrais pas coder en dur mes identifiants dans un fichier de configuration, mais je suis certain que l’authentification est configurée pour utiliser les jetons Kerberos. Je ne pourrais pas les spécifier du tout.

Il est intéressant de noter que les mises à jour d’Atom indiquent que mes paquets installés (prêts à l’emploi) sont à jour, ce qui semble indiquer que cette partie fonctionne alors que les paquets et les thèmes ne fonctionnent pas.


Voici quelques captures d’écran pour référence:

Aucun changement .apmrc Aucun changement .apmrc

Serveur proxy spécifié dans .apmrc Serveur proxy spécifié dans .apmrc

Modifier le 31/08/2015

En réponse à certains commentaires, j’ai essayé d’afficher le fichier .pac et d’extraire les informations d’adresse du serveur proxy. J’ai été en mesure d’obtenir les informations sur le proxy du fichier et de le placer dans le fichier .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 en vain.

Notez également que mon proxy requirejs une authentification comme indiqué ci-dessus. J’ai fait des recherches plus approfondies sur ce problème et cela peut être une combinaison de parameters proxy pour l’ APM et les parameters de proxy pour GitHub. Voir l’article pertinent suivant:

  • https://discuss.atom.io/t/error-running-apm-install-behind-proxy/14812

Idéalement, je souhaiterais une solution qui ne nécessite pas une configuration complète de la machine ou une configuration de fichier multi-config fragile.

    Un fichier .pac est juste un fichier javascript que les navigateurs peuvent exécuter pour déterminer par programme quel proxy utiliser. Ceci est utile si votre réseau doit utiliser différents serveurs proxy pour accéder à différentes ressources. Si vous ouvrez ce fichier, vous serez probablement en mesure de le comprendre (tout simplement javascript) et de déterminer quel proxy utilise votre réseau pour accéder au Web. Définissez cela comme votre proxy dans votre fichier .apmrc et cela devrait fonctionner.

    Les choses se compliquent si votre proxy requirejs une sorte d’authentification. Si c’est votre problème, faites le moi savoir. J’ai de l’expérience dans ce domaine.


    Authentification

    OK, vous devez vous authentifier. Ensuite, votre situation est probablement très similaire à la mienne. Vous avez raison d’utiliser CNTLM, il suffit de le configurer correctement. Votre fichier cntlm.ini ressemblera à ceci:

     Username  Domain  Password  PassLM  PassNT  PassNTLMv2  Proxy  Proxy  NoProxy localhost, 127.0.0.*,  Listen  

    Il y a quelque chose d’un peu drôle à savoir sur ce fichier ( cntlm.ini ). Lorsque vous installez cntlm, il est inclus dans le dossier du programme, mais il ne fonctionnera que s’il se trouve dans C:\Program Files (x86)\cntlm\cntlm.ini . Je suppose que c’est probablement plus exact de dire que cela devrait être dans le dossier cntlm répertoire PROGRAMFILES , vous devriez donc vérifier que c’est bien le cas.

    Quoi qu’il en soit, après avoir fait tout cela, vous pouvez maintenant démarrer cntlm (instructions dans le fichier readme). Ensuite, vous devez configurer apm pour utiliser réellement votre proxy local. Votre .apmrc devrait ressembler à ceci:

     http-proxy = http://localhost: https-proxy = https://localhost: ssortingct-ssl = false 

    Vous pensez que cela serait suffisant, mais il y en a d’autres qui pourraient aider. J’ai eu beaucoup de problèmes avec npm jusqu’à ce que je trouve que https ne fonctionne pas bien via cntlm . J’ai donc dû changer mon registre de https://registry.npmjs.org/ à http://registry.npmjs.org/ . Comme apm utilise également le même registre, j’ai décidé de changer cela aussi:

     apm config set registry http://registry.npmjs.org/ 

    Et puis … il semblait aussi aller dans les core.proxy config.cson d’Atom et définir core.proxy sur http://localhost:

    Et après tout cela, je m’attendais à ce que les choses fonctionnent pour vous. Si c’est cool et bien que Atom fonctionne bien, il y a une autre chose que vous voudrez peut-être faire pour que la plupart des applications (npm, git, etc.) marchent bien. Sur la ligne de commande, exécutez:

     netsh winhttp set proxy localhost: "localhost, 127.0.0.*" 

    Cela vous évitera de configurer la plupart (toutes?) D’autres applications une par une. Pour une raison quelconque, apm doit être configuré spécifiquement. Je suppose qu’il n’utilise pas les parameters winhttp pour une raison quelconque? Je ne connais pas la réponse à cela.

    Nouvelles infos 2016/03/18

    J’ai récemment remarqué qu’il y avait une chose supplémentaire à faire pour certaines applications. Vous devez également définir les variables d’environnement suivantes sur votre proxy local:

     HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy 

    Il peut sembler exagéré de définir à la fois les majuscules et les minuscules, mais j’ai récemment installé MSys2 et j’ai constaté qu’il recherchait les versions minuscules.

    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 rechercher l’adresse et le port du proxy (près d’un mot clé PROXY ).

    Je l’ai utilisé pour mes problèmes avec npm et .npmrc

    c:\users\%user%\.atom\.apmrc (ajoutez s’il n’existe pas) et mettez ceci

     proxy=http://YOUR-DOMAIN**%5C**USER-NAME:PASSWORD@YOUR-PROXY-SERVER:PORT/