凉亭电话被公司代理阻止


77

我正在尝试将Bower用于Web应用程序,但发现自己遇到了某种代理问题:

D:\>bower search jquery
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 1.2s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 2.5s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 6.8s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 15.1s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 20.3s
bower ECONNRESET    Request to https://bower.herokuapp.com/packages/search/jquery failed: tunneling socket could not be established, cause=Parse Error

相关要点:

  • 我可以浏览到https://bower.herokuapp.com/packages/search/jquery,它返回完整的json响应。
  • 我可以使用git://协议和http(s)来克隆。
  • 没有这些问题,我可以直接使用NPM
  • 我尝试使用Fiddler来确定被阻止的内容,但是它无法检测到Bower命令的任何调用。我可以在Fiddler中看到来自NPM命令的调用。
  • 我搜索了Bower问题列表,发现了类似的问题,但是它们要么没有解决方案,要么看起来与我的不太相同。

有任何想法吗?

Answers:


164

谢谢@ user3259967

这完成了工作。

我想补充一点,如果您位于需要身份验证的代理后面,则可以将用户名/密码添加到您的.bowerrc文件中。

{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

注意在https-proxy中使用http://


1
我可以找到.bowerrc文件。它已经存在或我们应该添加解决方案吗?
AnandhaSundari M 2015年

您将需要手动创建它,然后添加以上行。确保您正确遵循JSON标准。
Sohail 2015年

@Sohail最后的“,”导致错误。您可以删除它吗?
edubriguenti 2015年

12
注意在https-proxy <<<<中使用http://是极有价值的信息。它为我带来了成功
Denny1989

用户名和密码,这是什么?
Hossein Ganjyar 2015年

37

我的解决方案是此配置.bowerrc

{
  "directory": "vendor",
  "registry": "http://bower.herokuapp.com",
  "proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "https-proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "strict-ssl": false
}

在https-proxy中使用http协议以及带有http协议的注册表项。

记住将8080端口号更改为您的代理服务器端口。


19

您是代理人吗?

您是否设置了环境变量HTTP_PROXY和HTTPS_PROXY?

SET HTTP_PROXY=http://yourproxyserver:yourproxyport
SET HTTPS_PROXY=http://yourproxyserver:yourproxyport

谢谢。我的问题是我的HTTPS_PROXY设置中有https。
Brian F

@JamesClevenger-当我尝试此解决方案时,它根本不起作用,仍然出现相同的错误。
dcp 2014年

设置环境变量有效。Bower通过编辑.bowerrc文件可以取得一些进步,但实际上并没有下载任何内容。
丹尼尔·N


9

我没有.bowerrc文件来配置我的Bower设置。我发现这些设置存在于名为defaults.js的文件中。在“ C:\ ... \ bower \ node_modules \ bower-config \ lib \ util \ defaults.js ”下找到
,希望对其他人有帮助:

var defaults = {
    'cwd': process.cwd(),
    'directory': 'bower_components',
    'registry': 'http://bower.herokuapp.com',
    'shorthand-resolver': 'git://github.com/{{owner}}/{{package}}.git',
    'tmp': paths.tmp,
    'proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'https-proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'timeout': 30000,
    'ca': { search: [] },
    'strict-ssl': false,
    'user-agent': userAgent,
    'color': true,
    'interactive': null,
    'storage': {
        packages: path.join(paths.cache, 'packages'),
        links: path.join(paths.data, 'links'),
        completion: path.join(paths.data, 'completion'),
        registry: path.join(paths.cache, 'registry'),
        empty: path.join(paths.data, 'empty')  // Empty dir, used in GIT_TEMPLATE_DIR among others
    }
};

module.exports = defaults;


3
您可能刚刚创建了文件.bowerrc
Mukus

7

您可以尝试在GitHub上将@thebignet推荐给同样的问题

设置proxyhttps-proxy并将其strict-ssl配置到 .bowerrcFile中:

{
  "proxy"       : "http://<host>:<port>",
  "https-proxy" : "http://<host>:<port>",
  "strict-ssl"  : false
} 

但是您必须从终端运行Command:

git config --global url."https://".insteadOf git://

2
+1对我有用。不需要认证。刚刚从npm复制了我的代理设置。如果您需要找出它们的用途npm get proxynpm get https-proxy并且还没有.bowerrc文件,则只需创建一个文件即可
-fidev

是的,您的解决方案使用npm可能,但是我的解决方案使用.bowerrc文件仅在您当前的项目中更改proxy设置
ahmed hamdy


4

对于Win 7

对于我来说有效的方法是按照链接的建议进行以下操作-阅读#nanowizard答案。

  1. .bowerrc文件中,删除之前可能已完成的所有http_proxy / https_proxy设置。这个很重要。因此,此文件的最终内容应类似于:

    {
      "directory": "app/bower_components" 
    }
    
  2. 在您的PC中http_proxy以及https_proxy公司防火墙代理中设置环境变量。如果您的公司代理需要身份验证,并且您的密码包含特殊字符,请按照链接的建议将其转换为十六进制格式。在我的情况下,用'\'转义字符没有帮助。另外,我还必须重新启动系统。

注意:http_proxy和https_proxy应该包含相同的代理地址,如下所示

http_proxy = http://<user>:<password>@<your company proxy>:<port>
https_proxy= http://<user>:<password>@<your company proxy>:<port>  ->Note no 's' in http://...

1
支持密码中特殊字符的注释。那对我来说很合理。
尼克

@Nick:很高兴它有所帮助。
fibreair

1

我在公司防火墙后面,也必须指定域名。这些答案都不对我有用。这是我所做的-

  1. http://cntlm.sourceforge.net/下载CNTLM
  2. 显然安装了它。
  3. 打开cntml.ini并更改以下内容

    your_domain_name

    用户名your_domain_username

    密码your_domain_passowrd

    PassLM 1AD35398BE6565DDB5C4EF70C0593492(取消评论)

    PassNT 77B9081511704EE852F94227CF48A793(也请取消注释)

    代理http:// localhost:8888

  4. 转到services.msc并启动CNTLM身份验证服务。

  5. 下载Fiddler 4/2(无论他们怎么称呼)。
  6. 也安装此。这将在http:// localhost:8888中运行
  7. 现在,无论您正在运行的程序是什么,它都将其代理(代理)到http:// locahost:3128(这是CNTLM正在运行的。)

在这种情况下,将http.proxy和https.proxy指定为http:// localhost:8888

这将适用于其他客户端程序。只需将代理指定为http:// localhost:8888


这是唯一对我有用的方法。在没有本地代理的情况下,我最接近使其工作的是全局安装最新的Node工具,然后使用代理设置,全局NPM命令将起作用(例如,安装Bower)。但是,在VS内部NPM之上运行的所有内容均未得到修复。新的Node工具显然已经修复,但是MS版本或Bower落后了。因此,谢谢,但也许不要告诉人们将纯文本密码放在源文件中。配置用户,域和代理,然后运行CNTLM -M命令以生成代替密码的安全值。
托尼·沃尔

1
另外,您不需要Fiddler或任何其他级别的复杂性。只需编辑项目本地.bowerrc文件,然后添加均指向“ localhost:3128 ”的代理和https-proxy ,即CNTLM服务。对于GIT和NPM也是一样,尽管正如我在全局升级后所说,使用缓存的(从Visual Studio登录)密码对我的公司代理进行动态身份验证没有问题。NPM和GIT当然具有自己的代理和https-proxy设置,类似于bowerrc,以防有人要在全局/用户/项目路径中进行编辑。
托尼·沃尔

1

它的工作对我来说.bowerrc文件中的更改

{
 “目录”:“客户端/库”, 
 “ registry”:“ http://bower.herokuapp.com”,
 “ proxy”:“ http://192.168.1.205:3228”,
 “ https-proxy”:“ http://192.168.1.205:3228”
}
  • client / lib是安装目录,您想在哪里安装
  • http://192.168.1.205:3228是带端口的代理ip。公司代理可以根据组织机构而有所不同。

1

除了在中设置以下代理外.bowerrc

{
  "directory": "app/bower_components",
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "http-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "strict-ssl": false,
  "registry": "http://bower.herokuapp.com"
}

我需要运行以下命令来解决此问题:

npm cache clean
bower cache clean
bower install

1

现在已弃用其他答案中使用的注册表。请更新!

{
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "registry": "https://registry.bower.io"
}

0
{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

这段代码对我有用。我正在使用Win 7,Chrome和git bash。这里需要清除的事情很少。这需要我花费大量时间来查找有关用户名,密码,代理IP和端口的实际数据。我将逐步描述它,以便每个学习者都可以轻松理解该信息:

  1. 在登录文件夹中名为.bowerrc的记事本中创建一个文件;您可以通过在开始>运行>%UserProfile%中键入并按OK转到那里。
  2. 在.bowerrc文件中键入以上代码,进行以下更改:

    替换<USERNAME> 为您的Internet连接用户ID或登录ID

    替换<PASSWORD>为您的Internet连接密码或登录密码。
    更换<PROXY_IP><PROXY_PORT>与工作代理的IP地址和端口号。

       **Note: There should be no angle brackets.**
    
  3. 代理IP应该不同于您自己的IP。

  4. 在使用任何代理IP和端口之前,您应该通过更改代理IP和端口来检查其是否正常工作。

  5. 您可以通过此链接在此处的说明中了解代理设置的详细信息

  6. 从该代理设置中,您将获得代理IP和端口。
  7. 重新检查所有输入,以确保所有输入正确无误,然后保存并关闭文件。
  8. 打开git bash并将目录更改为项目文件,然后键入命令,然后按Enter(在我的情况下是git bash命令):

a @ a-PC MINGW32 / d / conFusion

$凉亭安装

  1. 它像魔术一样工作。

0

万一它对某人有所帮助,我会遇到“被组策略阻止的威胁”错误。

解决方案是在CryptoPrevent中设置例外,CryptoPrevent是我们公司计算机上安装的用于阻止密码柜的应用程序。


0

有关信息,请在您的.bowerrc文件中添加一个no-proxy属性。我不知道从什么时候开始支持它,但是它可以在Bower 1.7.4上运行,并且可以解决带有内部存储库的公司代理背后的Bower问题。

.bowerrc:

{
  "directory": "bower_components", 
  "proxy": "http://yourProxy:yourPort",
  "https-proxy":"http://yourProxy:yourPort",
  "no-proxy":"myserver.mydomain.com"
}

问候


0

请确保您的代理密码中没有特殊字符。将其转换为十六进制。这个对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.