连接到bitbucket.org的443端口失败:网络不可达。

24

我在推送代码时遇到了问题。

git push origin master

fatal: unable to access 'https://xxxxxxxxxx@bitbucket.org/xxxxxx/xxxxxx.git/': 
Failed to connect to bitbucket.org port 443: Network is unreachable

如何避免那个错误信息?


你能在网页浏览器中打开Bitbucket吗?问题是否仍然存在(一个小时后或在另一台电脑上再试一次)? - Thilo
如果问题仍然存在,请使用以下远程URL样式:https://bitbucket.org/USERNAME/REPO.git - Arman
17个回答

42
TLDR; 首先尝试 git push -4 origin master

有关通过https访问Bitbucket的当前问题报告问题(问题13060, 问题12184)存在问题。

通常的答案是:

“连接失败”错误可能是DNS问题、本地网络问题或不完全路由Bitbucket流量的ISP等任何问题。不幸的是,这些评论中没有足够的细节来诊断确切的问题,这些问题可能与彼此相关或不相关。如果可以,请打开支持票据,并提供以下命令的结果:

对于OS X、Linux和其他基于UNIX的操作系统:

ping -c10 bitbucket.org
ping6 -c10 bitbucket.org
traceroute bitbucket.org
traceroute6 bitbucket.org
GIT_CURL_VERBOSE=1 git ls-remote https://bitbucket.org/bitbucket/do_not_delete

对于Windows:
ping -n 10 bitbucket.org
ping -n 10 -6 bitbucket.org
tracert bitbucket.org
tracert -6 bitbucket.org

(为了澄清:“ping6”和“traceroute6”分别是“ping”和“traceroute”的IPv6版本,“GIT_CURL_VERBOSE=1”在任何git命令之前将详细说明连接的所有HTTP特定部分。
在Windows端,命令行中的“-6”指定您的计算机应使用IPv6进行ping或tracert。)
此外,如果您怀疑问题与Bitbucket的IPv6支持有关,则可以通过在浏览器中打开以下链接来测试整体IPv6连通性:
https://ipv6.google.com
https://www.v6.facebook.com

如果您的IPv6连接已禁用或配置错误,那些链接根本不应该起作用。
更一般地,检查您的/etc/hosts是否有关于bitbucket.org的任何条目。
请参见“我应该使用哪些Bitbucket Cloud IP地址来配置我的公司防火墙?
IP地址最近已更改:

Since July 28, 2018: IPv4 inbound for bitbucket.org, api.bitbucket.org, and altssh.bitbucket.org

18.205.93.0/25
18.234.32.128/25
13.52.5.0/25
记住 ping 可能被阻止, 导致相同的错误信息。

IPV6可能会出现问题:同一线程建议:

这可能是在git尝试通过IPV6推送时发生的。我不确定为什么会出现这个错误。但是,以下是可以用来解决此问题的不同解决方案。

将以下任何一个IP添加到/etc/hosts文件中以强制git使用IPV4

104.192.143.2
104.192.143.3
104.192.143.1

That is,

104.192.143.2 bitbucket.org

修改 /etc/hosts 文件

(或者)

升级你的 git 到最新版本。可能这样可以解决问题,否则在升级 git 后推送时使用以下选项(这个功能是新添加到 git 中的)

 -4, --ipv4 use IPv4 addresses only

That is ,

git push -4 bitbucket dev

当您推送、拉取或克隆时,您可以指定选项-4。或者,您可以配置Git使用HTTP代理来解决此问题。
 git config --local http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

如果您已经使用最新版本的Git,您可以使用选项-4强制Git使用IPV4地址,或者您可以使用/etc/hosts。如果您想在推送或拉取代码时查看调试消息,您可以在此之前设置以下环境变量。
export GIT_CURL_VERBOSE=1

我这样做了,但是遇到了两个问题:ping6 -c10 bitbucket.org - 不工作(没有路线)和/etc/hosts是只读文件。我已经使用sudo chmod 755/777更改了权限,但没有变化。 - AmanKumar
如果ping或tracert无法工作,那么你必须首先解决防火墙问题、网络问题、代理问题等。@AmanKumar - VonC
@Gur,你使用的Git版本是什么? - VonC
@VonC 是的,但是 ping6traceroute6 不起作用。使用 traceroute6 会得到 无效参数 的错误提示,而使用 ping6 则会显示 不可达:没有路由 - Gurpreet Singh
@GurpreetSingh 你能否尝试使用https://confluence.atlassian.com/bitbucket/what-are-the-bitbucket-cloud-ip-addresses-i-should-use-to-configure-my-corporate-firewall-343343385.html(“(自2018年7月28日起)bitbucket.org,api.bitbucket.org和altssh.bitbucket.org的IPv6入站”部分)中列出的最新IPv6对bitbucket.org进行ping6测试,例如2406:da00:ff00 :: 6b17:d1f5 - VonC
显示剩余9条评论

30

我在这个页面上关注了讨论,并将此行添加到我的hosts文件中:

104.192.143.2 bitbucket.org

它有效。我的系统是Ubuntu,因此主机文件位于/etc/hosts,您需要具有根权限。


3
我在自己的回答中提到的不是这个吗? - VonC
已经在这里回答了:https://dev59.com/OFkT5IYBdhLWcg3wh_1U - Rohan Khude

13

这太疯狂了,我从/etc/hosts中删除了104.192.143.2 bitbucket.org后,它就为我工作了。


这对我起作用了,看起来他们的DNS映射已经改变了。 - Saji Xavier

5
只需在您的~/.ssh/config文件中添加以下条目:
Host bitbucket.org
  AddressFamily inet

这实际上是一个有帮助的答案,与其他答案不同,这里的每个解决方案都不适用于每个人,因此我看不出为什么应该避免这个答案。 - Brian Deragon
如果这个解决方案能够被纳入采纳的答案中,那就太好了。这是一个比硬编码IP地址更好的解决方案,因为IP地址在未来可能会发生变化。 - FoxyLad

4
我已经从路径/etc/hosts中删除了104.192.143.2 bitbucket.org。它开始工作了。 编辑: 我再次遇到错误:Failed to connect to bitbucket.org port 443: Network is unreachable
我添加了新的ip 18.205.93.0 bitbucket.org,现在它完美地工作了。您可以通过输入此命令ping -c10 bitbucket.org找到ip。
参考:有关更多信息,请访问此链接

4

我已经解决了这个问题。 其中一个原因是由于您所在的系统处于代理网络中。 在这种情况下,您需要运行以下命令:

$ git config --global http.proxy http://username:password@proxy:port

其中,用户名:您的系统用户ID | 密码:系统密码 | 代理:您正在使用的代理的IP地址 | 端口:该代理的端口|

这是由于我的组织网络的网络限制造成的。


3

切换网络供应商。有时您的网络供应商会导致此类问题。


3

建议1:只需删除您的原始文件并重新设置原始文件,然后尝试推送/拉取。希望这样做可以解决问题。

 git remote -v
 git remote remove origin
 git remote add origin https://habibus@bitbucket.org/softbd/oss-project.git 

建议2:如果Windows/System32/drivers/etc/hosts中存在以下任何一行,请删除这些行。

 104.192.143.1 bitbucket.org
 104.192.143.2 bitbucket.org
 18.205.93.0 bitbucket.org

建议3:更换网络连接或网络服务提供商。有时候是网络服务提供商造成了这种错误。

建议4:检查防火墙设置。有时候防火墙也会导致出现此类错误。

建议5:检查您的 git 版本,然后运行以下命令进行升级。

 sudo add-apt-repository ppa:git-core/ppa
 sudo apt-get update
 sudo apt-get install git

非常感谢。我安装了新版本的Git,现在可以正常使用了。 - DhineshYes

2

检查防火墙设置。在我的情况下,这是问题所在。


0

针对Windows,打开您的命令提示符并执行:

  1. ping -n 10 bitbucket.org
  2. tracert bitbucket.org

这肯定会解决问题。它在我的电脑上有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接