我遇到了从npm install -g phonegap
调用以下命令来安装PhoneGap的问题:
Failed to connect to github.com port 443: Timed out
返回以下错误:
git
关于此主题存在大量问题,并且它们似乎都提供了相同的答案 - 确保配置了nodejs
和node
的代理设置。我设置了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 Firewall
都确认这些代理设置已就绪。
我还允许程序通过防火墙转到Allow a program or feature through windows firewall
- > node.exe
。然后,我选择了Node.js
git
和git.exe
我选择了{{1}}。
但是我仍然遇到了无法连接到Github的问题。还有什么我想念或忘记设置吗? Node.js和Git都是第一次安装此任务。
答案 0 :(得分:3)
除了上述设置外,如果某些下载的库使用git://
协议而不是https://
声明其依赖关系,则可能会出现此错误。这些依赖关系通常会因上述错误而失败。
要解决此问题,您可以运行以下命令:
git config --global url."https://".insteadOf git://
这会向Git添加一个配置选项,要求Git在URL使用https
协议时使用git://
。
此设置为我修复了许多代理问题。
答案 1 :(得分:2)
您需要向命令应用程序添加代理身份验证。我假设您在Windows中工作,以下工作对我来说(我不需要将代理添加到npm或git,除非运行git命令)。
在您的活动命令窗口中,每个会话都需要其中一个或两个,包括初始安装添加设备或插件以及第一个应用程序构建:
设置https_proxy = http://username:password@proxy:port
设置http_proxy = http://username:password@proxy:port
所以我看起来像这样:
设置https_proxy = http://john.doe:1234@proxy.det.nsw.edu.au:8080
本
答案 2 :(得分:0)
使用git 2.8(2016年3月),您无需在网址中以明文形式嵌入密码。
commit 372370f见commit ef97639,Knut Franke (``)(2016年1月26日)
帮助:Junio C Hamano (gitster
),Eric Sunshine (sunshinebell28
)和Elia Pinto (devzero2000
)
(Junio C Hamano -- gitster
--于2016年2月3日commit 30f302f合并)
http
:使用凭证API处理代理身份验证目前,将代理凭据传递给curl的唯一方法是将它们包含在代理URL中。通常,这意味着它们将以某种方式(通过包含在
~/.gitconfig
,shell配置文件或历史记录中)以未加密的方式结束到磁盘上。
由于代理身份验证通常使用域用户,因此凭据可能对安全性敏感;因此,需要一种更安全的通过证书的方式。如果配置的代理包含用户名但不包含密码,请查询 一个凭证API。另外,请确保我们批准/拒绝代理凭据 正常。 所以:
除了curl理解的语法之外,还可以指定一个具有用户名但没有密码的代理字符串,在这种情况下,git将尝试以与它相同的方式获取一个其他凭证。
有关详细信息,请参阅gitcredentials 因此语法是:
[protocol://][user[:password]@]proxyhost[:port]
这可以在每个远程基础上覆盖;见
remote.<name>.proxy
。
http:允许选择代理身份验证方法
CURLAUTH_ANY
不适用于使用307重定向到错误页面而不是407列出支持的身份验证方法来回答未经身份验证的请求的代理。
因此,允许使用环境变量GIT_HTTP_PROXY_AUTHMETHOD
或配置变量http.proxyAuthmethod
和remote.<name>.proxyAuthmethod
(类比)设置身份验证方法 到http.proxy
和remote.<name>.proxy
)。支持以下值:
- anyauth(默认)
- 基本
- 消化
- 协商
- NTLM