Git:在 CONNECT 后从代理收到 HTTP 代码 503
Posted
技术标签:
【中文标题】Git:在 CONNECT 后从代理收到 HTTP 代码 503【英文标题】:Git: Received HTTP code 503 from proxy after CONNECT 【发布时间】:2015-10-13 20:20:40 【问题描述】:我查看了很多与此问题相关的帖子,但似乎没有任何东西可以解决我的问题。所以现在我希望你们能给我一个神奇的答案。
我正在使用 Intellij(但也尝试使用 SourceTree)从 Fisheye 拉/推/克隆存储库。但是我收到错误:
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
fatal: unable to access 'https://myUser@myUrl/fisheye/git/myRepo.git/': Received HTTP code 503 from proxy after CONNECT
关于 503 的提示意味着由于维护而导致的临时停机对我不起作用,因为这个问题现在持续了一周。
关于错误/缺失代理设置的提示似乎也不起作用。我为系统 git 和 IDE (Intellij) 设置了 http 和 https 代理。
它以前工作过,我能够克隆存储库。然后我创建了一个新分支,进行了一些更改并希望将其推送回主分支。
我真的很期待一些聪明的提示。
谢谢
更新
我补充说:
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
我收到了以下日志:
$ git fetch
trace: built-in: git 'fetch'
trace: run_command: 'git-remote-https' 'origin' 'https://Username@myWebService.de/randomGit.git/'
* Couldn't find host myWebService in the _netrc file; using defaults
* Trying 15.46.16.11...
* Connected to myProxy.com (15.46.16.11) port 8080 (#0)
* Establish HTTP proxy tunnel to myWebService.de:443
> CONNECT myWebService.de:443 HTTP/1.1
Host: webapp-entw.mlp.de:443
User-Agent: git/1.9.5.msysgit.1
Proxy-Connection: Keep-Alive
Pragma: no-cache
< HTTP/1.1 503 Service Unavailable
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: text/html; charset=utf-8
< Proxy-Connection: close
< Connection: close
< Content-Length: 732
<
* Received HTTP code 503 from proxy after CONNECT
* Closing connection 0
fatal: unable to access 'https://Username@myWebService.de/randomGit.git/': Received HTTP code 503 from proxy after CONNECT
【问题讨论】:
你能显示git remote -v
的输出吗?
origin https://[myUser]@[myGit].git (fetch)
origin https://[myUser]@[myGit].git (push)
【参考方案1】:
我遇到了同样的错误代码。对我来说,症状是我可以成功推送到远程仓库,但不能拉取……就我而言,这似乎是一个名称解析问题。
首先,我发现这些设置可以更清楚地了解网络事件。
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
通过这些设置,我收到了这样的跟踪:
PROMPT$ git pull
...
15:21:17.015575 run-command.c:351 trace: run_command: 'git-remote-https' 'origin' 'https://gitub.com/USERNAME/REPO'
* Couldn't find host gitub.com in the .netrc file; using defaults
* Hostname was NOT found in DNS cache
* Trying PROXY-SERVER-IP-ADDRESS...
* Connected to (PROXY-SERVER-IP-ADDRESS) port 80 (#0)
* Establish HTTP proxy tunnel to gitub.com:443
> CONNECT gitub.com:443 HTTP/1.1
Host: gitub.com:443
User-Agent: git/2.3.2 (Apple Git-55)
Proxy-Connection: Keep-Alive
Pragma: no-cache
< HTTP/1.1 503 Service Unavailable
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: text/html; charset=utf-8
< Proxy-Connection: close
< Connection: close
< Content-Length: 787
<
* Received HTTP code 503 from proxy after CONNECT
* Connection #0 to host PROXY-SERVER-IP-ADDRESS left intact
fatal: unable to access 'https://gitub.com/USERNAME/REPO/': Received HTTP code 503 from proxy after CONNECT
我对 github.com 和 www.github.com 做了一些 ping 操作,并注意到一些不同的结果。这促使我按如下方式更新我的原始 URL。
git remote set-url origin https://www.github.com/USERNAME/REPO
只需添加“www”。在这种情况下,进入原始 URL 解决了我的连接问题。不再有 503 —— push 和 pull 都成功了。
更新
根据您更新的跟踪,这看起来与我遇到的问题非常相似。您可能会尝试临时替换您正在使用的存储库服务器的实际 IP 地址(而不是主机名)。如果可行,请研究名称解析的解决方案,例如修改 /etc/hosts。另外,您能否确认您尝试过 git remote set-url origin 以包含完整的主机名而不仅仅是域名?
【讨论】:
所以我应该将origin https://[myUser]@[myGit].git
更改为origin https://www.[myUser]@[myGit].git (push)
?
所以我添加了export GIT_TRACE_PACKET=1
【参考方案2】:
我发现我的代理无法识别 webapp 地址,所以我安装了 Privoxy 并告诉他传递所有请求,除了那些用于我的 git 的请求。它有效。
因此,如果我必须连接到存储库,我会跳过代理并直接连接。
【讨论】:
以上是关于Git:在 CONNECT 后从代理收到 HTTP 代码 503的主要内容,如果未能解决你的问题,请参考以下文章
IDEA提交失败,提示:OpenSSL SSL_connect: SSL_ERROR_SYSCALL
git 使用代理出现 LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 错误
[转发]解决 git push Failed to connect to 127.0.0.1 port 45463: 拒绝连接