github连接错误

获取mongo-cxx-driver的时候出现“ gnutls_handshake()失败” 错误

 git clone https://github.com/mongodb/mongo-cxx-driver.git --branch releases/stable --depth 1

问题的原因,gnutls出现问题。它在代理背后很奇怪。但是openssl即使在弱网络中也能正常工作。所以解决方法是我们应该用openssl编译git

 

sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev
sudo apt-get build-dep git
mkdir ~/git-openssl
cd ~/git-openssl
apt-get source git
dpkg-source -x git_2.7.4-0ubuntu1.10.dsc
cd git-2.7.4

然后,编辑debian/control文件(运行命令:vim debian/control)并将所有libcurl4-gnutls-dev实例替换为libcurl4-openssl-dev

然后构建软件包(如果测试失败,可以从文件debian/rules中删除TEST=test行):

sudo apt-get install libcurl4-openssl-dev
sudo dpkg-buildpackage -rfakeroot -b

安装新包:

i386:sudo dpkg -i ../git_1.7.9.5-1_i386.deb

x86_64:sudo dpkg -i ../git_1.7.9.5-1_amd64.deb

之后出现“Unknown SSL protocol error in connection to github.com:443”问题

git  init
git config http.sslVerify "false" 

 

### 解决 GitHub 命令行连接超时问题 当遇到 GitHub 连接超时时,可能的原因包括网络状况不佳、SSH 配置不正确或者防火墙阻止了请求。以下是针对该问题的一些解决方案: #### 1. 使用 SSH 密钥优化连接 如果尚未配置 SSH 密钥,则可以通过生成新的密钥来增强安全性并减少潜在的连接延迟。可以运行以下命令创建一个新的 ED25519 类型的 SSH 密钥[^2]: ```bash ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 ``` 完成之后,将公钥添加到 GitHub 账户中。具体操作如下: - 复制生成的公钥内容:`cat ~/.ssh/id_ed25519.pub` - 登录 GitHub,在账户设置中的 **SSH 和 GPG 密钥** 页面添加新密钥。 #### 2. 检查设备标志位设置 某些情况下,特定的设备标志可能会干扰正常的读取行为,从而导致连接异常。例如 `DEVICE_FLAG_NO_ZERO_READS` 的存在可能是为了修复某种类型的连接问题[^1]。尽管此标志通常用于底层硬件调试,但在排查过程中可尝试禁用此类特殊标志以观察效果。 #### 3. 测试与重置 TCP 序列号逻辑 对于更复杂的场景,TCP 层面的行为也可能引发连接失败。比如在处理 RST 数据包时,序列号的选择至关重要。根据已知信息,RST 数据包的序列号应等于到达数据包的确认字段值[^3]。因此,建议通过抓包工具(如 Wireshark)分析是否存在错误的 RST 或 ACK 字段发送情况。 另外,还可以调整本地系统的 TCP 参数以改善稳定性。编辑 `/etc/sysctl.conf` 文件加入下面的内容,并执行 `sysctl -p` 生效更改: ```conf net.ipv4.tcp_keepalive_time = 60 net.ipv4.tcp_retries2 = 5 ``` #### 4. 替代 HTTPS 协议访问仓库 作为最后手段之一,考虑切换至基于 HTTPS 的克隆方式而非依赖于 SSH。这样能够绕过部分由加密握手引起的延时现象。只需更新远程 URL 地址即可实现转换: ```bash git remote set-url origin https://github.com/username/repository.git ``` --- ### 总结 上述方法涵盖了从基础层面到高级技术细节的不同角度应对策略。实际应用时可根据具体情况逐一试验直至找到最有效的方案。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值