在corporate proxy Node.js后面访问Github
我在从在corporate proxy Node.js后面访问Github,node.js,git,cordova,proxy,phonegap-plugins,Node.js,Git,Cordova,Proxy,Phonegap Plugins,我在从cmd调用以下命令以安装PhoneGap时遇到问题: npm install -g phonegap 返回以下错误: Failed to connect to github.com port 443: Timed out 关于这个主题有很多问题,它们似乎都提供了相同的答案-确保配置了git和nodejs的代理设置。我设置了节点代理设置,如下所示: npm config set proxy http://proxyname:8080 npm config set https-proxy
cmd
调用以下命令以安装PhoneGap时遇到问题:
npm install -g phonegap
返回以下错误:
Failed to connect to github.com port 443: Timed out
关于这个主题有很多问题,它们似乎都提供了相同的答案-确保配置了git
和nodejs
的代理设置。我设置了节点
代理设置,如下所示:
npm config set proxy http://proxyname:8080
npm config set https-proxy http://proxyname:8080
对于git
:
git config --global http.proxy http://proxyname:8080
git config --global https.proxy http://proxyname:8080
git config--list
和npm config list
都确认这些代理设置已就位
我还允许程序通过防火墙进入Windows防火墙
->允许程序或功能通过Windows防火墙
。然后我为node.js
选择了node.exe
,为git
选择了git.exe
然而,我仍然有一个问题,即它无法连接到Github。还有什么我遗漏或忘记设置的吗?Node.js和Git都是第一次为该任务安装的 除上述设置外,如果一些下载的库使用
git://
协议而不是https://
声明其依赖关系,则可能会出现此错误。这些依赖关系通常会因上述错误而失败
要解决此问题,可以运行以下操作:
git config --global url."https://".insteadOf git://
这将向Git添加一个配置选项,要求Git在URL使用Git://
协议时使用https
此设置为我修复了许多代理问题。您需要将代理身份验证添加到您的命令应用程序中。我假设您在windows中工作,以下内容对我很有用(我不需要将代理添加到npm或git,除非运行git命令) 在活动命令窗口中,每个会话(包括初始安装、添加设备或插件)和第一次应用程序构建时,您都需要这些命令中的一个或两个: 设置https\u代理= 设置http\U代理= 所以我的看起来像这样: 设置https\u代理= Ben使用git 2.8(2016年3月),您不必在url中以明文形式嵌入密码 参见(2016年1月26日)作者。
帮助人:、和。
(于2016年2月3日被合并)
http
:使用凭据API处理代理身份验证
目前,将代理凭据传递给curl的唯一方法是将它们包含在代理URL中。通常,这意味着它们最终将以某种方式(通过包含在~/.gitconfig
、shell配置文件或历史记录中)在磁盘上未加密。由于代理身份验证通常使用域用户,因此凭据可能是安全敏感的;因此,需要一种更安全的凭证传递方式 如果配置的代理包含用户名而不是密码,请查询 一个人的凭证API。此外,请确保我们批准/拒绝代理凭据 对。 因此: 除了curl所理解的语法之外,还可以指定一个带有用户名但没有密码的代理字符串,在这种情况下,git将尝试以与其他凭据相同的方式获取一个代理字符串。
有关更多信息,请参阅。
因此,语法是: 这可以在每个远程的基础上被覆盖;请参见
remote..proxy
http:允许选择代理身份验证方法
CURLAUTH\u ANY
不适用于通过307重定向到错误页面而不是407列表支持的身份验证方法来回答未经身份验证请求的代理。因此,允许使用环境变量
GIT\u HTTP\u PROXY\u AUTHMETHOD
或配置变量HTTP.proxyAuthmethod
和remote..proxyAuthmethod
(类似地
到http.proxy
和remote..proxy
)
支持以下值:
- anyauth(默认值)
- 基本的
- 消化
- 协商
- ntlm
非常感谢您的回复,我刚刚尝试了您的建议,但问题仍然存在。奇怪…这里可能还有更多信息:太棒了!哦,哈哈,我刚从bash it repo看到了nwinkler。bash it docker向您问好并感谢您的回复:)解决了我的问题:在代理之后,安装自定义git repo,挂在npm会话上就是这样!非常感谢你!我的密码中有“@”。如何使用git bash中的命令行将其放入?@Raulp不,它无法正确解析,您需要从密码中删除“@”password@BenJones谢谢,成功了!我不得不用%40替换@
[protocol://][user[:password]@]proxyhost[:port]