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 :
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
Serveur proxy spécifié dans .apmrc
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:
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.
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.
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/