Ubuntu20.04无法访问Bitbucket 执行repo init提示连接超时读仓库失败
Bitbucket访问超时、repo初始化失败排查方案
两类故障(浏览器无法打开站点、SSH连接7999端口超时)的核心共性是客户端到Bitbucket服务端的网络链路未打通,不要一开始就排查SSH密钥、仓库权限问题——连接超时发生在TCP握手阶段,根本没走到SSH认证、仓库权限校验环节,按以下顺序逐层排查:
1. 基础网络连通性校验
- 先校验DNS解析是否正常,执行命令:
确认返回的IP地址和Bitbucket服务公布的访问IP一致。如果解析超时、返回错误IP或空结果,先检查本地nslookup bitbucket.xxx.com/etc/resolv.conf配置的DNS服务器地址是否正确,替换为服务方要求的内网/公共DNS后重试。 - 校验7999端口连通性,二选一执行命令即可:
如果这一步直接提示连接超时/拒绝,按以下子项逐一排查:# 方式1 telnet bitbucket.xxx.com 7999 # 方式2 nc -zv bitbucket.xxx.com 7999- 确认当前网络是否在Bitbucket的允许访问范围内:多数企业自建Bitbucket仅允许办公内网、接入企业VPN后访问,外网环境直接访问会被拦截,先接入对应VPN再测试。
- 检查本地防火墙是否拦截出向请求:Ubuntu20.04默认使用ufw防火墙,执行
sudo ufw status查看出站规则,若存在7999端口拦截规则,临时放通或关闭防火墙测试。 - 若同网络下其他用户也无法访问Bitbucket,直接联系服务运维确认服务端是否宕机、7999端口是否正常监听、服务端防火墙/安全组是否拦截了你所在网段的IP。
2. 清理错误代理配置
代理配置错误是最常见的链路拦截原因,逐一排查:
- 检查终端环境变量代理,执行:
如果返回了错误的http_proxy、https_proxy、ALL_PROXY配置,执行env | grep -i proxyunset 对应变量名清空代理后重试。 - 检查SSH客户端配置,打开
~/.ssh/config文件,确认bitbucket.xxx.com对应的配置段没有错误的代理、端口、用户名配置,正常配置参考:Host bitbucket.xxx.com HostName bitbucket.xxx.com Port 7999 User git IdentityFile ~/.ssh/对应Bitbucket账号的私钥文件路径 - 检查Git全局代理配置,执行:
如果返回了无效代理地址,执行git config --global --get http.proxy git config --global --get https.proxygit config --global --unset 对应配置项删除后重试。
3. 链路通后校验权限与仓库配置
当telnet/nc测试7999端口能正常建立连接后,再排查权限、配置类问题:
- 手动测试SSH认证有效性,执行:
配置正常的话会返回Bitbucket账号的登录欢迎信息;如果提示Permission denied,先检查本地SSH公钥是否已经上传到Bitbucket个人账号的SSH密钥列表,同时确认本地私钥文件权限为600(可执行ssh -T -p 7999 git@bitbucket.xxx.comchmod 600 ~/.ssh/你的私钥文件修正权限)。 - 确认repo init参数正确性:核对
main分支是否存在、xxx_zzz11.xml清单文件是否在manifests仓库的main分支下、仓库路径yyy-zzz/manifests.git是否存在拼写错误。 - 手动测试仓库拉取:执行
git clone ssh://git@bitbucket.xxx.com:7999/yyy-zzz/manifests.git -b main,如果能正常拉取,先删除之前初始化失败生成的.repo目录,重新执行repo init命令即可。
内容的提问来源于stack exchange,提问作者GNK
相关产品推荐
相关产品推荐

