Sous Windows, est-il possible de configurer Atom pour qu’il utilise le proxy par défaut du système au lieu de spécifier manuellement les paramètres du proxy dans le fichier .apmrc?
J'ai récemment commencé à utiliser atom-editor pour Windows (Windows 7 Pro) et jusqu'à présent, je l'aime bien. Je cherche depuis un certain temps à faire en sorte que l'éditeur puisse se connecter au monde extérieur et je n'ai rencontré aucun succès.
Notre réseau (je ne suis pas un expert du réseau) est configuré pour utiliser un serveur proxy (interne) pour accéder à Internet. Sur mon système, cela est réalisé dans les paramètres 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 du système par défaut pour fonctionner}
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
strict-ssl = false
J'ai 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 sans altération, le message d'erreur suivant s'affiche lorsque je tente d'afficher des packages:
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 coder en dur mes informations d'identification dans un fichier de configuration, mais je suis à peu près sûr que l'authentification est en quelque sorte configurée pour utiliser les jetons Kerberos de toute façon. Je ne pourrais pas les spécifier du tout.
Fait intéressant, les mises à jour Atom indiquent que mes packages installés (par défaut) sont à jour, ce qui semble indiquer que cette partie fonctionne alors que les packages et les thèmes ne fonctionnent pas.
Voici quelques captures d'écran pour référence:
Aucun .apmrc modifications
Serveur proxy spécifié dans .apmrc
En réponse à certaines des réactions, j'ai essayé d'afficher le fichier .pac et d'extraire les informations d'adresse du serveur proxy. J'ai pu extraire les informations sur le proxy du fichier et les mettre dans le fichier .apmrc mais cela n'a pas eu d'incidence sur le résultat (je reçois toujours les mêmes erreurs). Depuis, j'ai aussi essayé d'utiliser CNTLM en vain.
Notez également que mon proxy nécessite requiert une authentification comme indiqué ci-dessus. J'ai fait d'autres recherches sur ce problème et il pourrait s'agir d'une combinaison de paramètres de proxy pour la variable APM
et de paramètres de proxy pour GitHub. Voir l'article pertinent suivant:
Idéalement, j'aimerais une solution ne nécessitant pas une configuration complète de la machine ou une configuration de fichier multi-configuration fragile.
Un fichier .pac
est simplement un fichier javascript que les navigateurs peuvent exécuter pour déterminer par programme le 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 (c'est du javascript, après tout) et de déterminer le proxy utilisé par votre réseau pour un accès général au Web. Définissez-le comme proxy dans votre fichier .apmrc
et cela devrait fonctionner.
Les choses se compliquent si votre proxy nécessite une sorte d'authentification. Si c'est votre problème, faites le moi savoir. J'ai un peu d'expérience dans ce domaine.
OK, alors vous devez vous authentifier. Ensuite, votre situation est probablement assez similaire à la mienne. Vous utilisez correctement CNTLM, nous devons juste le configurer correctement. Votre fichier cntlm.ini
ressemblera à 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 devriez 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
. J'imagine qu'il est probablement plus exact de dire que cela devrait se trouver dans le dossier cntlm
à l'intérieur du répertoire PROGRAMFILES
. Vous devez donc vérifier que c'est bien le cas.
Quoi qu’il en soit, cela fait, vous pouvez maintenant lancer cntlm
(instructions du fichier Lisez-moi). Ensuite, vous devez configurer apm
pour utiliser réellement 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
Vous penseriez que cela suffirait, mais d'autres solutions pourraient aider. J'ai eu beaucoup de problèmes avec npm
jusqu'à ce que j'ai découvert que https
ne fonctionnait pas bien avec cntlm
, j'ai donc dû changer mon registre de https://registry.npmjs.org/
à http://registry.npmjs.org/
. Puisque 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 ... cela semblait également aider à aller dans le config.cson
d'Atom et à mettre core.proxy
à http://localhost:<port # from cntlm.ini>
Et après tout, je m'attends à ce que les choses fonctionnent pour vous. Si tout va bien et qu'Atom fonctionne bien, il y a une dernière chose que vous voudrez peut-être faire et qui fera que la plupart (toutes?) Des autres applications (npm, git, etc.) fonctionnent bien. Sur la ligne de commande, exécutez:
netsh winhttp set proxy localhost:<port # from cntlm.ini> "localhost, 127.0.0.*"
Cela vous évitera d'avoir à configurer la plupart des applications (toutes?) 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 à 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 des majuscules et des minuscules, mais j'ai récemment installé MSys2 et constaté qu'il recherchait les versions minuscules; il vous suffit donc de toutes les définir et de vous épargner quelques ennuis.
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 proxy réelle et le port à l'intérieur (près d'un mot clé PROXY
).
J'ai utilisé cela pour mes problèmes avec npm et .npmrc
c:\users\%user%\.atom\.apmrc
(ajouter s'il n'existe pas) et mettre ceci
proxy=http://YOUR-DOMAIN**%5C**USER-NAME:PASSWORD@YOUR-PROXY-SERVER:PORT/