How to configure Atom to use system default proxy settings?

On Windows, is it possible to configure Atom to use the system default proxy instead of manually specifying the proxy settings in the .apmrc file?

I recently started using the atom-editor for Windows (Windows 7 Pro) and so far I like it. I’ve been searching for some time to try and get the editor to be able to connect to the outside world and haven’t met with any success.

Our network (I’m not a network expert) is configured to use a proxy server (internal) to access the internet. On my system, this is accomplished in the proxy settings with an ‘Automatic Configuration Script’, for example: http://internal-server-name/sub-dir/file-name.pac.

Many resources have suggested manually setting the proxy information in the .apmrc file:

These do not answer my question as I need the system defaults to work

I tried to configure Atom to do this same thing but when I change the .apmrc file to have:

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

I get the following error (presumably because the above address is not the proxy itself):

tunneling socket could not be established, cause=Parse Error

When I leave the .apmrc file unmolested, I receive the following error when trying to view packages:

getaddrinfo ENOTFOUND

Even if I had a proxy server IP address and port number to specify, not only would i not want to hard-code my credentials in a config file but I’m pretty sure the authentication is somehow set up to use Kerberos tokens anyway, so I wouldn’t be able to specify them at all.

Interestingly the Atom updates says that my installed packages (out of the box) are up to date, which would seem to indicate that this portion is working while the packages and themes do not.

Here are some screenshots for reference:

No .apmrc changes How to configure Atom to use system default proxy settings?

Proxy server specified in .apmrc How to configure Atom to use system default proxy settings?

How to make maven use system proxy settings

I’m using Ubuntu with Gnome where I can set network proxy settings (with authentication). The question is: how I can run maven in command line and make it use this proxy?

How to set VB Application Proxy Settings to Default System Proxy Settings

My application is supposed to work on a Company Network where proxy is enabled, By default when logged in all applications like browser and all can access internet normally But when i open my applicat

How to configure Eclipse EGit to use custom proxy settings?

I’m behind a corporate firewall, so most of the time (e.g. Eclipse updates) I want to be going through a proxy. However, the servers I pull from in Git are all internal. I currently have to change my

Use URLLIB without system default proxy Python

I have a small script that needs to communicate with me, it is part of my proxy. The script needs to run before the proxy starts, but the system is set to use the proxy, so it does not go through. How

How to use iOS proxy settings with web services 2.0 (System.Net.IWebProxy) in Monotouch?

I’m consuming a Webservice 2.0 via SOAP. My service has a Proxy property of type System.Net.IWebProxy. I would like to use the proxy settings that are configured on the iOS device I’m running on. Simp

How do I configure proxy settings for Java in Solaris to handle Proxy Auto Config (PAC) scripts?

I would like to configure Java proxy settings on Solaris to use a Proxy Auto Config (PAC) scriptt. I have found instructions for making the settings on a Windows machine using the Java control panel,

How to use IE proxy server settings and its credentials in .Net Application

How to use the saved proxy settings and credentials as default for HttpWebRequests? The proxy settings are accessible and used but not the credentials: IWebProxy proxy = WebRequest.GetSystemWebProxy()

NSURLConnection refuses to use OSX System Proxy Settings

Ok so everywhere I’ve read and everyone I’ve talked to says that NSURLConnection when used in asychronous mode should automatically use OSX’s system proxy settings. Here’s what I’ve done: Setup a squ

How can I automatically detect proxy settings from system service

My program is running by system service and it should use the proxy settings, the problem they set for the users. Anyone have an idea?

How to use charles in a system with proxy settings?

I am using a virtual pc from my office, in which I want to test with charles. That Windows OS uses a proxy for connecting to net. In Charles software, When I uncheck the enable windows proxy checkbo

Answers

you should download the file ·file-name.pac· and open it with a text editor, then find the actual proxy address inside it.

A .pac file is just a javascript file that browsers can run to programmatically determine which proxy to use. This is useful if your network needs to use different proxies to access different resources. If you open up that file, you’ll probably be able to make sense of it (it’s just javascript, after all) and figure out which proxy your network is using for general access to the web. Set that as your proxy in your .apmrc file and it should work.

Things get more complicated if your proxy requires some kind of authentication. If that’s your problem, let me know. I have some experience dealing with it.


Authenticating

OK, so you need to authenticate. Then your situation is probably pretty similar to mine. You are correct in using CNTLM, we just need to configure it properly. Your cntlm.ini file will look something like this:

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

There’s something a bit funny that you should know about this file (cntlm.ini). When you install cntlm, it’s included in the program’s folder but it actually will only work if it’s located at C:/Program Files (x86)/cntlm/cntlm.ini. I guess it’s probably more accurate to say that it should be in the cntlm folder inside the PROGRAMFILES directory so you should double check that this is the case.

Anyway, having done all that, you can now start cntlm (instructions in the readme). Next, you need to configure apm to actually use your local proxy. Your .apmrc should look like this:

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

You’d think this would be enough but there’s more that might help. I had a lot of problems with npm until I found that https doesn’t work well through cntlm so I needed to change my registry from https://registry.npmjs.org/ to http://registry.npmjs.org/. Since apm also uses the same registry, I decided to change that too:

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

And then… it seemed to also help to go into Atom’s config.cson and set core.proxy to http://localhost:<port # from cntlm.ini>

And after all that, I’d expect things to work for you. If it’s cool and fine and Atom is working well, there’s one more thing that you might want to do that will make most (all?) other apps (npm, git, etc) work well. On the command line, run:

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

This will save you the trouble of configuring most (all?) other apps one-by-one. For some reason, apm does need to be configured specifically. I guess it doesn’t use the winhttp settings for some reason? I don’t know the answer to that.

I used this for my trouble with npm and .npmrc

c:/users/%user%/.atom/.apmrc (add if not exist) and put this

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