要点
浏览器流量和 Git 流量不会自动相同
GitHub网站通常使用HTTPS,而存储库操作可以使用HTTPS或SSH。即使在同一台计算机上,这些进程也可以继承不同的代理设置,或者通过分割隧道进行不同的处理。因此,成功的浏览器会话并不能证明 git 或 ssh 使用相同的 VPN 路由。
首先读取准确的远程 URL。对于 HTTPS,请重点关注 DNS、TLS 和 Git 代理状态。对于 SSH,重点关注主机名解析、路由、SSH 配置以及 SSH 连接使用的网络路径。
检查代理状态、DNS 和地址族
Git 可以继承 HTTP_PROXY 和 HTTPS_PROXY 或在自己的配置中存储代理值。当浏览器直接连接时,过时的本地代理可能会将 Git 发送到死路径。 SSH 可以独立使用主机别名、ProxyCommand 或其配置中的其他规则。
还比较 IPv4 和 IPv6。当 DNS 返回两个系列但 VPN 仅可靠地路由其中一个系列时,客户端可能会等待无法访问的地址并出现挂起的情况。修复路由或客户端行为,而不是削弱 TLS 验证。
使用小型确定性故障排除序列
使用详细的 Git 或 SSH 输出重复该操作,并记下停止的阶段。在打开和关闭 VPN 的情况下检查名称解析,确认远程方案并检查代理设置。然后比较另一个网络或备用克隆协议。
如果 HTTPS 克隆有效而 SSH 无效,请在更改存储库凭据之前调查 SSH 路径。如果两种克隆方法在网站正常运行时都失败,则浏览器路由和进程路由之间的差异将成为最强的主导因素。
继续阅读