【问题标题】:Error 'tunneling socket' while executing npm install执行 npm install 时出现“隧道套接字”错误
【发布时间】:2016-01-14 17:44:24
【问题描述】:

我在尝试执行“npm install”命令时收到如下所示的错误。

错误:无法建立隧道套接字,原因=连接 ECONNREFUSED 10.232.207.137:8080

我错过了什么?

【问题讨论】:

    标签: npm protractor


    【解决方案1】:

    根据this 它的代理问题,尝试禁用 ssl 并将注册表设置为 http 而不是 https 。希望有帮助!

    npm config set registry=http://registry.npmjs.org/
    npm config set strict-ssl false
    

    【讨论】:

    • 节省了一天,代理似乎不允许创建隧道是一个问题。
    【解决方案2】:

    如果您使用代理,请在 npm 中正确设置。

    >npm config set proxy http://proxyhost:proxyport
    >npm config set https-proxy http://proxyhost:proxyport
    

    注意事项:

    1. 对于 SSL/https 代理,URL 中的协议应该是 http 而不是 https

    2. 如果您的设置是在 Docker/Vagrant 实例或托管 VM 上,请使用 IP 地址而不是主机名作为代理,因为后者可能无法解析。

    3. 如果没有代理,请从 npm 中删除代理配置

      >npm config set proxy null
      >npm config set https-proxy null
      

    【讨论】:

    • npm config set proxy null npm config set https-proxy null救救我。谢谢!
    • 设置 npm config set proxy null 后,我得到错误:无效协议:null
    • 按照最后步骤中的建议将代理设置为空,对我有用。非常感谢。
    • For SSL/https proxies, the protocol in URL should be http not https 我不知道是这样的。最糟糕的是,其他应用似乎能够很好地处理https
    • 谢谢你,https/http 对我来说是坏事。这令人恼火的不一致。
    【解决方案3】:

    如果需要,记得设置您的用户名和密码:

    http://USERNAME:passwd@proxyserver.co.uk:8080

    例子:

    npm config set proxy http://USERNAME:passwd@proxyserver.co.uk:8080
    

    【讨论】:

      【解决方案4】:

      删除代理设置解决了问题:

      如果您不使用任何代理:

      npm config rm proxy
      npm config rm https-proxy
      

      如果您使用的是代理:

      npm config set proxy http://proxyhostname:proxyport
      npm config set https-proxy https://proxyhostname:proxyport
      

      希望这能解决你的问题:)

      【讨论】:

      • 哇,添加代理,删除代理,空代理。疯狂的!没有任何效果。
      【解决方案5】:

      我遇到过类似的问题,上述解决方案都没有像我在受保护的网络中那样工作。

      为了克服这个问题,我从 Telerik 安装了“Fiddler”工具,安装后启动 Fiddler 并再次开始安装 Protractor。

      希望这能解决您的问题。

      谢谢。

      【讨论】:

        【解决方案6】:

        我知道这为时已晚,但如果将来有人遇到类似问题,并且您确定您有 no proxy set 但您有一个名为 http_proxy 的环境变量。请删除并重试。我已经为 Fiddler 设置了代理。

        【讨论】:

        • 欢迎,很高兴我能帮上忙
        • 没问题,干杯赛义德
        • 一直在敲我的头。完全忘记了环境变量。非常感谢!
        • 在遇到这个问题之前,我也花了一周的时间试图解决这个问题 - 非常感谢!
        【解决方案7】:

        要记住的重要一点是,如果您在企业防火墙后面并且从 .pac 文件中获取企业代理设置,那么请务必使用 global 代理的值。

        【讨论】:

        • 如果您不在公司防火墙后面的个人计算机上坐在家里的私人网络上???
        【解决方案8】:

        以下命令可能会解决您的问题:

        npm config set proxy false
        npm cache clean
        

        它解决了我同样的问题。

        【讨论】:

        • 关闭npm的代理功能对我有用!谢谢。
        • 我在第二个命令中收到了这条无用的消息:“npm ERR!从 npm@5 开始,npm 缓存从损坏问题中自我修复,并且从缓存中提取的数据保证是有效的。如果你想确保一切都是一致的,使用'npm cache verify'代替。另一方面,如果你正在调试安装程序的问题,你可以使用npm install --cache /tmp/empty-cache来使用临时缓存而不是核对实际缓存。”
        【解决方案9】:

        为了完成这项工作,我浪费了一天的时间。 已完成此步骤。

        我打开了 Fiddler 并检查了选项规则 > 自动验证。

        之后,搜索文件 .npmrc,通常在 c:\users\ 并将其用作配置:

        registry=https://registry.npmjs.org/
        proxy=http://username:password@127.0.0.1:8888
        https-proxy=http://username:password@127.0.0.1:8888
        http-proxy=http://username:password@127.0.0.1:8888
        strict-ssl=false
        ca=null
        

        希望能帮助别人!

        【讨论】:

          【解决方案10】:

          如果您使用的是 ubuntu trusty 14.0,则搜索网络并选择网络代理并将其设为无。现在代理可能仍然在系统环境变量中设置。检查

          env|grep -i proxy
          

          你可能会得到输出

          http_proxy=http://192.168.X.X:8080/
          ftp_proxy=ftp://192.168.X.X:8080/
          socks_proxy=socks://192.168.X.X:8080/
          https_proxy=https://192.168.X.X:8080/
          

          将这些环境变量取消设置为:

          unset(http_proxy)
          

          并以这种方式取消所有设置。现在运行 npm install 确保用户必须有权在您安装模块的位置创建 node_modules 文件夹。

          【讨论】:

            【解决方案11】:

            如果您使用 gnome,并且在网络级别关闭了代理,您还需要确保您的终端中没有启用代理

            ➜ gconftool-2 -a /system/http_proxy  
             host = http://localhost/
             port = 2000
             use_http_proxy = false
             use_authentication = false
             authentication_password = 
             authentication_user = 
             ignore_hosts = [localhost,127.0.0.0/8]
            

            你可以用

            gconftool-2 -t string -s /system/http_proxy/host ""
            gconftool-2 -u /system/http_proxy/port
            gconftool-2 -u /system/http_proxy/host
            unset http_proxy
            

            【讨论】:

              【解决方案12】:

              我也遇到了类似的问题,并使用CNTLM 进行代理配置。在我的情况下,HTTP_PROXYHTTPS_PROXY 的优先级高于 http_proxyhttps_proxy,因此请注意更改所有代理变量。

              env|grep -i proxy
              

              并确保以下所有代理变量都应指向同一个代理。

              HTTP-PROXY = "http://localhost:3128"
              HTTPS-PROXY = "https://localhost:3128"
              HTTPS_PROXY = "http://localhost:3128"
              HTTP_PROXY = "http://localhost:3128"
              PROXY = "http://localhost:3128"
              http-proxy = "http://localhost:3128"
              http_proxy = "http://localhost:3128"
              https-proxy = "https://localhost:3128/"
              https_proxy = "https://localhost:3128"
              proxy = "http://localhost:3128/"
              

              我知道有些变量是不必要的,但我不确定哪个在使用什么。

              【讨论】:

              • 对我来说,我必须将 https-proxy = "https://<IP>:3128/" and https_proxy = "https://<IP>:3128" 更改为 https-proxy = "http://<IP>:3128/" https_proxy = "http://<IP>:3128"
              【解决方案13】:

              查看所有答案后,帮助我的答案是提供与 install 命令一致的代理值。我的挫败感之一是将域添加到我的用户名中。这不需要。我使用以下示例安装了特定版本的 Angular:

              npm install -g @angular/cli@1.7.3 --proxy "http://username:password@proxy_server:proxy_port" --registry http://registry.npmjs.org
              

              【讨论】:

                【解决方案14】:

                我花了几天时间尝试上述所有答案,并确保我的节点配置中的代理和其他设置正确。一切都是,但它仍然失败。我曾经/正在使用 Windows 10 机器并在 corp 代理后面。

                由于某些遗留原因,我在用户环境变量中设置了 HTTP_PROXYHTTPS_PROXY,它们覆盖了节点变量(我不知道),因此更正了这些(HTTPS_PROXY 设置为 https,所以我更改为 HTTP)为我解决了这个问题。

                当我们可以在多个地方拥有相同的变量时,这就是问题所在,你不知道使用的是什么!

                【讨论】:

                  【解决方案15】:

                  在我的情况下帮助删除 .npmrc 配置文件

                  rm ~/.npmrc
                  

                  【讨论】:

                  • 这对我也有帮助。我支持公司代理..但删除 npmrc 有效..
                  【解决方案16】:

                  在@Roshith 在他的answer here 中描述的内容旁边:

                  如果您使用代理,请在 npm 中正确设置。

                  npm config set proxy http://proxyhost:proxyport
                  npm config set https-proxy http://proxyhost:proxyport
                  

                  我还必须更改文件~.bashrc,在我的情况下该文件也包含错误的代理设置。我在这里更改了这些设置:

                  export HTTP_PROXY="http://proxyhost:proxyport"
                  export HTTPS_PROXY="http://proxyhost:proxyport"
                  

                  使用以下命令验证代理设置:

                  env | grep -i proxy
                  

                  【讨论】:

                  • 是的,npm config 是 npm 的配置; ~/.bashrc 是你的 bash 环境的配置
                  【解决方案17】:

                  我在尝试通过 npm 安装 Cypress 时遇到了同样的错误。我在代理后面尝试了许多上述解决方案,但仍然看到相同的错误。最后,我发现我的 WIndows 系统配置(可以通过在命令提示符中输入“set”来检查)设置的 HTTP 和 HTTPS 代理与 npm 中的 vonfigure 不同。我删除了这些代理并立即下载。

                  【讨论】:

                    【解决方案18】:
                    npm config set registry http://registry.npmjs.org/
                    

                    上面的代码解决了我的问题:)

                    【讨论】:

                      【解决方案19】:

                      我遇到过类似的情况并尝试了这里提到的一些技术。为了克服,

                      我对 c:\users\\.npmrc 中的重复条目进行了清理

                      希望它可以帮助某人。 谢谢,

                      【讨论】:

                        【解决方案20】:

                        如果您在安全网络上使用 VPN(例如用于在家工作的 VPN),您可能会遇到权限问题。对我来说,我使用 sudo 来初始化 ReactJS 开发环境解决了这个问题...

                        sudo npm install
                        

                        【讨论】:

                          【解决方案21】:

                          如果您尝试了以上所有方法但仍有问题,请确保您的本地路径不包含空格。 (有一些方法可以允许空格,但我的不是这样设置的。)在我的例子中,我使用的是 MAMP,其服务器文档根为/Users/myusername/My Site。将其更改为 /Users/myusername/My-Site 解决了该问题。

                          【讨论】:

                            【解决方案22】:

                            对于窗户

                            如果您没有使用任何代理(在开始菜单搜索栏中搜索代理以查看设置)然后

                            npm 配置设置代理为空

                            npm 配置设置 https-proxy null

                            npm 缓存清理

                            如果上述方法不起作用,您可能需要强制执行此操作,但前提是您确定缓存清理不会对您造成任何其他安装问题

                            npm 缓存清理 --force

                            从环境变量中删除 http_proxy

                            现在试试,应该没问题

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 2015-09-27
                              • 2014-11-21
                              • 2013-09-17
                              • 2017-04-25
                              • 2014-10-17
                              • 2020-02-20
                              • 2020-12-01
                              相关资源
                              最近更新 更多