Files
nexus/wiki/sources/Git-Push-连接重置问题修复.md

2.7 KiB
Raw Blame History

title, type, tags, date
title type tags date
Git Push 连接重置问题修复 source
github
git
proxy
socks5
network
2025-03-16

Source File

Summary

  • 核心主题GitHub Push 报 Recv failure: Connection was reset 的修复方案
  • 问题域:国内访问 GitHub 时 TCP 连接被 GFW 阻断,间歇性 TLS 握手失败
  • 方法/机制:分别为 Git 配置 HTTP/SOCKS5 代理,或切换为 SSH 协议并配置代理
  • 结论/价值:国内环境 Git 操作必须走本地代理SOCKS5 速度通常优于 HTTP 代理

Key Claims

  • Connection was reset 是 TCP 层面中断非权限问题GFW 检测到 GitHub 域名后发送 TCP RST 包阻断连接
  • 间歇性原因是 GitHub CDN 多 IP 部分被封锁
  • HTTP 代理命令:git config --global http.proxy http://127.0.0.1:10809
  • SOCKS5 代理命令:git config --global http.proxy socks5://127.0.0.1:10808
  • SSH 协议切换:git remote set-url origin git@github.com:username/repo.git
  • Linux/Mac SSH 走代理:ProxyCommand nc -X 5 -x 127.0.0.1:10808 %h %p
  • Windows Git SSH 走代理:ProxyCommand connect -S 127.0.0.1:10808 %h %p
  • 取消代理:git config --global --unset http.proxy && git config --global --unset https.proxy

Key Quotes

"Recv failure: Connection was reset连接重置并不是账号权限验证失败而是 TCP 连接层面的中断" — 诊断关键:区分网络层 vs 应用层错误

Key Concepts

  • TCP RST 攻击GFW 通过发送 TCP Reset 包阻断连接,非包过滤
  • Git HTTP/SOCKS5 代理:通过 http.proxy / https.proxy 全局配置让 Git 流量走本地代理
  • Git SSH 协议切换:将远程地址从 HTTPS 改为 SSH规避 443 端口干扰
  • SSH ProxyCommand:通过 connectWindowsncLinux/Mac让 SSH 走 SOCKS5 代理
  • GFW 封锁特征GitHub 域名被 DPI 检测后触发 TCP RSTCDN 节点部分被封导致间歇性

Key Entities

  • GitHub:全球最大代码托管平台,国内访问受 GFW 干扰
  • V2RayN:本地 SOCKS5/HTTP 代理工具,监听 10808/10809 端口
  • Clash:代理客户端,同样支持 SOCKS5 和 HTTP 出局

Connections

Contradictions

  • 与其他 Git 代理方案(如 gh proxy、VPN 全局模式)相比:本文方法仅影响 Git 命令,不干扰终端其他网络请求

Metadata

  • 作者shenwei
  • 创建时间2025-03-16
  • 原始标签:[github, proxy, push, socks5]