You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2 Ubuntu实例无法连接bitbucket.org技术求助

解决AWS EC2实例无法连接Bitbucket.org的问题

我之前碰到过一模一样的场景,结合你的EC2环境(Ubuntu 16.04、Git 2.7.4)和描述的问题,咱们一步步来排查解决:

1. 先排查DNS解析问题(ping不通大概率是这个原因)

很多时候EC2默认的VPC DNS会抽风,导致无法解析bitbucket.org的域名。咱们先验证解析是否正常:

# 用nslookup检查域名解析
nslookup bitbucket.org
# 或者用dig查看更详细的解析信息
dig bitbucket.org

如果返回的IP是空的、报错,或者和Bitbucket实际IP不符,那就是DNS的问题。可以手动配置公共DNS来修复:
编辑/etc/resolv.conf文件,添加以下内容:

nameserver 8.8.8.8
nameserver 8.8.4.4

注意Ubuntu 16.04如果用了systemd-resolved,直接改这个文件重启后会失效,建议用resolvconf工具持久化配置:

sudo apt-get install resolvconf
echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/head
echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolvconf/resolv.conf.d/head
sudo resolvconf -u

2. 验证SSH端口(22)的连通性(ping不通不代表端口不可达)

很多云服务商默认会禁用ICMP流量(也就是ping),所以ping没响应不代表SSH端口不能用。咱们直接测试Bitbucket的22端口:

# 用telnet测试端口连通性
telnet bitbucket.org 22
# 或者用nc更简洁地测试
nc -zv bitbucket.org 22

如果看到类似Connected to bitbucket.org或者Connection succeeded的提示,说明端口是通的;如果超时,那得再检查网络配置:

  • 确认安全组的出站规则确实是“所有流量”(0.0.0.0/0)
  • 检查VPC的网络访问控制列表(NACL):NACL是双向的,出站允许所有流量的同时,入站要允许Ephemeral端口范围(通常是1024-65535)的响应流量
  • 确认EC2所在的子网有路由指向互联网网关(IGW),如果是私有子网,需要配置NAT网关

3. 检查SSH密钥和Git配置

如果端口是通的,那大概率是SSH密钥的问题:

  1. 先查看EC2上的SSH公钥:
cat ~/.ssh/id_rsa.pub
  1. 登录Bitbucket,进入个人设置 → SSH密钥,检查是否已经添加了上面这个公钥。如果没有,生成新的密钥(一路回车默认即可):
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"

然后把生成的~/.ssh/id_rsa.pub内容复制到Bitbucket的SSH密钥列表里。

  1. 手动测试SSH连接Bitbucket:
ssh -T git@bitbucket.org

如果成功,会返回logged in as <你的Bitbucket用户名>.;如果失败,会给出具体错误(比如Permission denied),根据提示调整即可。

4. 尝试升级Git版本

你的Git版本是2.7.4,虽然Bitbucket官方说支持旧版本,但有些旧版本的Git可能存在SSH兼容性问题。可以升级到较新的版本试试:

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

升级完成后用git --version确认版本,再尝试克隆仓库。


内容的提问来源于stack exchange,提问作者Dhairya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:22:49