wake-up-neo.net

Wie kann man Atom so konfigurieren, dass er Proxy-Datei-Einstellungen (Pac) verwendet?

Ist es unter Windows möglich, Atom so zu konfigurieren, dass der Standard-Proxy des Systems verwendet wird, anstatt die Proxy-Einstellungen in der Datei .apmrc manuell festzulegen?


Ich habe vor kurzem angefangen, den atom-editor für Windows (Windows 7 Pro) zu verwenden, und bisher gefällt es mir. Ich habe nach einiger Zeit gesucht, um zu versuchen, den Redakteur mit der Außenwelt in Kontakt zu bringen, und hatte keinen Erfolg. 

Unser Netzwerk (ich bin kein Netzwerkexperte) ist so konfiguriert, dass ein Proxyserver (intern) für den Zugriff auf das Internet verwendet wird. Auf meinem System wird dies in den Proxy-Einstellungen mit einem 'Automatic Configuration Script' ausgeführt, zum Beispiel: http://internal-server-name/sub-dir/file-name.pac.

Viele Ressourcen haben vorgeschlagen, die Proxy-Informationen in der Datei .apmrc manuell festzulegen:

Diese beantworten meine Frage nicht, da ich die Systemeinstellungen brauche.

Ich habe versucht, Atom so zu konfigurieren, dass ich dasselbe mache, aber wenn ich die Datei .apmrc ändere, um Folgendes zu haben:

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

Ich erhalte den folgenden Fehler (vermutlich, weil die oben genannte Adresse nicht der Proxy selbst ist):

tunneling socket could not be established, cause=Parse Error

Wenn ich die .apmrc -Datei nicht störe, erhalte ich die folgende Fehlermeldung, wenn ich versuche, Pakete anzuzeigen:

getaddrinfo ENOTFOUND

Selbst wenn ich eine Proxy-Server-IP-Adresse und Port-Nummer angeben müsste, möchte ich nicht nur meine Anmeldeinformationen in einer Konfigurationsdatei nicht hartcodieren, aber ich bin mir ziemlich sicher, dass die Authentifizierung so eingerichtet ist, dass sie Kerberos-Token sowieso verwendet Ich könnte sie überhaupt nicht spezifizieren.

Interessanterweise sagt das Atom-Update aus, dass meine installierten Pakete (out of the box) auf dem neuesten Stand sind. Dies scheint zu bedeuten, dass dieser Teil funktioniert, während die Pakete und Designs nicht funktionieren.


Hier einige Screenshots als Referenz:

Nein .apmrc ändert sichNo .apmrc changes

Proxyserver angegeben in .apmrcProxy server specified in .apmrc

Bearbeiten Sie den 31.08.2015

Als Reaktion auf einige Rückmeldungen versuchte ich, die Datei .pac anzuzeigen und die Adressinformationen des Proxyservers zu extrahieren. Ich konnte die Informationen über den Proxy aus der Datei holen und in die Datei .apmrc einfügen, hatte jedoch keine Auswirkungen auf das Ergebnis (ich bekomme immer noch die gleichen Fehler). Ich habe seitdem auch versucht, CNTLM ohne Erfolg zu verwenden.

Beachten Sie auch, dass mein Proxy do wie oben angegeben eine Authentifizierung erfordert. Ich habe weitere Nachforschungen zu diesem Problem durchgeführt und es könnte eine Kombination von Proxyeinstellungen für die APM- und Proxyeinstellungen für GitHub sein. Siehe den folgenden relevanten Artikel:

Im Idealfall möchte ich eine Lösung, die keine vollständige Maschinenkonfiguration oder eine fragile Konfiguration mit mehreren Konfigurationsdateien erfordert.

18
xDaevax

Eine .pac-Datei ist nur eine Javascript-Datei, die Browser ausführen können, um programmgesteuert zu bestimmen, welcher Proxy verwendet werden soll. Dies ist nützlich, wenn Ihr Netzwerk verschiedene Proxys verwenden muss, um auf verschiedene Ressourcen zuzugreifen. Wenn Sie diese Datei öffnen, werden Sie wahrscheinlich einen Eindruck davon bekommen (es ist immerhin nur Javascript) und herauszufinden, welchen Proxy Ihr Netzwerk für den allgemeinen Zugriff auf das Web verwendet. Legen Sie dies als Ihren Proxy in Ihrer .apmrc-Datei fest und es sollte funktionieren. 

Die Dinge werden komplizierter, wenn Ihr Proxy eine Art Authentifizierung erfordert. Wenn das dein Problem ist, lass es mich wissen. Ich habe etwas Erfahrung damit. 


Authentifizierung

OK, Sie müssen sich also authentifizieren. Dann ist deine Situation wahrscheinlich ziemlich ähnlich wie bei mir. Sie verwenden CNTLM richtig, wir müssen es nur richtig konfigurieren. Ihre cntlm.ini-Datei sieht ungefähr so ​​aus:

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)>

Es gibt etwas komisches, dass Sie über diese Datei (cntlm.ini) wissen sollten. Wenn Sie cntlm installieren, ist es im Ordner des Programms enthalten, funktioniert aber nur, wenn es sich unter C:\Program Files (x86)\cntlm\cntlm.ini befindet. Vermutlich ist es wahrscheinlich genauer zu sagen, dass es sich im Ordner cntlm im Verzeichnis PROGRAMFILES befinden sollte. Sie sollten also noch einmal überprüfen, ob dies der Fall ist.

Nach all dem können Sie nun cntlm (Anweisungen in der Readme-Datei) starten. Als Nächstes müssen Sie apm so konfigurieren, dass Sie Ihren lokalen Proxy tatsächlich verwenden. Ihr .apmrc sollte so aussehen:

http-proxy = http://localhost:<port # from cntlm.ini>
https-proxy = https://localhost:<port # from cntlm.ini>
strict-ssl = false

Sie würden denken, das wäre genug, aber es gibt noch mehr, die helfen könnten. Ich hatte eine Menge Probleme mit npm, bis ich herausfand, dass https nicht gut durch cntlm funktioniert. Daher musste ich meine Registrierung von https://registry.npmjs.org/ in http://registry.npmjs.org/ ändern. Da apm auch dieselbe Registry verwendet, habe ich mich entschlossen, auch das zu ändern:

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

Und dann ... schien es auch hilfreich zu sein, in den config.cson von Atom zu gehen und core.proxy auf http://localhost:<port # from cntlm.ini> zu setzen.

Und nach all dem erwarte ich, dass die Dinge für Sie funktionieren. Wenn es cool und in Ordnung ist und Atom gut funktioniert, gibt es noch etwas, was Sie vielleicht tun möchten, das die meisten (alle?) Anderen Apps (npm, git usw.) gut funktionieren lässt. Führen Sie in der Befehlszeile Folgendes aus:

netsh winhttp set proxy localhost:<port # from cntlm.ini> "localhost, 127.0.0.*"

Dies erspart Ihnen die Mühe, die meisten (alle?) Anderen Apps nacheinander zu konfigurieren. Aus irgendeinem Grund muss apm speziell konfiguriert werden. Ich denke, dass es die Winhttp-Einstellungen aus irgendeinem Grund nicht verwendet? Ich weiß nicht die Antwort darauf. 

Neue Infos 2016/03/18

Ich habe vor kurzem bemerkt, dass es für einige Apps eine zusätzliche Sache gibt, die Sie möglicherweise tun müssen. Sie sollten auch die folgenden Umgebungsvariablen auf Ihren lokalen Proxy setzen:

HTTP_PROXY
HTTPS_PROXY
FTP_PROXY
http_proxy
https_proxy
ftp_proxy

Es mag wie übertrieben erscheinen, sowohl Groß- als auch Kleinbuchstaben zu setzen, aber ich habe kürzlich MSys2 installiert und festgestellt, dass es nach Kleinbuchstaben aussieht.

6
Okonomiyaki3000

Laden Sie die Datei http://internal-server-name/sub-dir/file-name.pac herunter und öffnen Sie sie mit einem Texteditor. Dort finden Sie die tatsächliche Proxyadresse und den Port (in der Nähe eines PROXY-Schlüsselworts).

4
flyisland

Ich habe dies für meine Probleme mit npm und .npmrc verwendet

c:\users\%user%\.atom\.apmrc (hinzufügen, falls nicht vorhanden) und dies einfügen

proxy=http://YOUR-DOMAIN**%5C**USER-NAME:[email protected]:PORT/
0
xzorkiix