当前位置: 首页 > 知识库问答 >
问题:

如何配置Atom使用代理文件(pac)设置?

阚夕
2023-03-14

在Windows上,是否可以将Atom配置为使用系统默认代理,而不是在.apmrc文件中手动指定代理设置?

我最近开始使用atom-editor for Windows(Windows7 Pro),到目前为止我很喜欢它。我已经搜索了一段时间,试图让编辑能够连接到外部世界,但没有遇到任何成功。

我们的网络(我不是网络专家)配置为使用代理服务器(内部)访问Internet。在我的系统中,这是通过“自动配置脚本”在代理设置中完成的,例如:http://internal-server-name/sub-dir/file-name.pac

  • 无法连接到主题和包的Atom.io
  • 此处:https://discuss.atom.io/t/is-there-any-proxy-settings/710/19
  • https://github.com/atom/atom/issues/1807

这些不能回答我的问题,因为我需要系统默认值才能工作

我试图配置Atom来执行同样的操作,但是当我将.apmrc文件更改为:

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

我得到以下错误(大概是因为上面的地址不是代理本身):

tunneling socket could not be established, cause=Parse Error

当我保持.apmrc文件不受干扰时,尝试查看包时收到以下错误:

getaddrinfo ENOTFOUND

即使我有一个代理服务器IP地址和端口号要指定,我不仅不想在配置文件中硬编码我的凭据,而且我非常肯定身份验证是以某种方式设置为使用Kerberos令牌的,所以我根本无法指定它们。

有趣的是,Atom更新说我安装的软件包(开箱即用)是最新的,这似乎表明这部分正在工作,而软件包和主题则不行。

这里有一些截图供参考:

针对一些反馈,我尝试查看.pac文件并提取代理服务器地址信息。我能够从文件中获取有关代理的信息,并将其放入.apmrc文件中,但这对结果没有影响(我仍然收到相同的错误)。我也尝试过使用CNTLM但没有用。

还请注意,我的代理确实需要如上所述的身份验证。我一直在对这个问题做进一步的研究,它可能是apm的代理设置和GitHub的代理设置的组合。参见以下相关文章:

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

理想情况下,我想要一个不需要完整的机器配置或脆弱的多配置文件设置的解决方案

共有1个答案

侯焱
2023-03-14

.pac文件只是一个javascript文件,浏览器可以运行该文件以编程方式确定使用哪个代理。如果您的网络需要使用不同的代理来访问不同的资源,这很有用。如果打开该文件,您可能就能理解它(毕竟它只是javascript),并弄清楚您的网络使用哪个代理对Web进行一般访问。将其设置为.apmrc文件中的代理,它应该可以工作。

如果代理需要某种身份验证,事情就会变得更加复杂。如果那是你的问题,告诉我。我有处理这件事的经验。

好的,所以你需要验证。那你的情况可能和我的很相似。您使用CNTLM是正确的,我们只需要正确配置它。您的cntlm.ini文件将如下所示:

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

关于这个文件(cntlm.ini)您应该知道一些有趣的事情。当您安装cntlm时,它包含在程序的文件夹中,但实际上只有当它位于C:\ProgramFiles(x86)\cntlm\cntlm.ini时,它才会起作用。我想可能更准确的说法是,它应该在programfiles目录中的cntlm文件夹中,所以您应该仔细检查情况是否如此。

总之,完成了所有这些之后,现在可以开始cntlm(自述文件中的说明)。接下来,您需要配置apm来实际使用您的本地代理。您的.apmrc应该如下所示:

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

你会认为这已经足够了,但还有更多的可能会有所帮助。我使用npm时遇到了很多问题,直到我发现https不能通过cntlm很好地工作,所以我需要将注册表从https://registry.npmjs.org/更改为http://registry.npmjs.org/。因为apm也使用相同的注册表,所以我决定也更改它:

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

然后...进入Atom的config.cson并将core.proxy设置为http://localhost: 似乎也有帮助

在那之后,我希望一切都能为你服务。如果它很酷很好,而且Atom工作得很好,那么您可能还想做一件事情,这将使大多数(所有?)其他应用程序(npm,git,等等)工作得很好。在命令行上运行:

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

这将省去您配置最(全部?)的麻烦其他应用程序一个接一个。由于某种原因,apm确实需要进行特定配置。我猜它不使用winhttp设置是出于某种原因?我不知道答案。

我最近注意到有一个额外的事情你可能需要做的一些应用程序。您还应该为本地代理设置以下环境变量:

HTTP_PROXY
HTTPS_PROXY
FTP_PROXY
http_proxy
https_proxy
ftp_proxy

设置大写和小写似乎有些矫枉过正,但我最近安装了MSys2,发现它会查找小写版本,所以只需将它们全部设置好,就可以省去一些麻烦。

 类似资料:
  • 我需要使用自动代理配置URL设置浏览器的代理,如下面的屏幕截图所示。 我正在尝试使用Selenium和Browserack作为测试环境来实现这一点。 设置代理,如下所示。 代理代理=new Proxy(); proxy.setProxyAutoconfig Url("http://pokgsa.ibm.com/gsa/pokgsa/home/j/m/jmit/web/public/proxy.pa

  • 问题内容: 我想 在Solaris上 配置Java代理设置以使用代理自动配置(PAC)脚本。 我已经找到了使用Java控制面板在Windows机器上进行设置的说明,但是在查找Solaris Java安装的位置/如何进行相同设置更改时遇到了麻烦。 我想使用代理自动配置(PAC)脚本,而不是手动为每个连接设置代理信息,或使用单个代理。我需要针对不同类型的URL利用多个代理。 问题答案: 可悲的是,系统

  • 问题内容: 我有一个使用maven作为构建工具的应用程序。 我正在使用Maven配置文件从不同的配置文件设置不同的属性。 我想做的是将maven中的所有活动配置文件也移植到spring活动配置文件中,以便我可以在bean签名()中引用它们。但我不确定该怎么做。 例如:考虑以下Maven设置 假设我在未指定任何其他配置文件的情况下运行maven,而我希望spring具有和 配置为活动配置文件。 问题

  • 我有一个用maven作为构建工具的应用程序。 我正在使用maven概要文件从不同的概要文件设置不同的属性。 假设我运行带有out的maven,并指定我希望spring的任何其他概要文件,将和作为活动概要文件。

  • 我为开发和测试环境配置了两个Spring概要文件和。在每个环境中,我使用不同的数据库,即dev中的,以及测试中的。以下是每个配置文件的属性文件,其中通过spring boot分别解析为和,具体取决于配置的数据源。 application-dev.properties application-test.properties 配置文件的Flyway迁移文件位于下,而配置文件位于 当我使用profile

  • 问题内容: 我想使用带有以下条目的application.properties文件设置配置文件: 如何在我的context.xml文件中设置spring.profiles.active?init-param仅在web.xml上下文中有效。 问题答案: 有几种更改活动配置文件的方法,这些方法都不直接取自属性文件。 您可以像在问题中一样使用。 您可以在应用程序启动时提供系统参数 你可以得到从你和编程方