请教一下使用 git 报错

84 天前
 404www
fatal: unable to access 'https://github.com/xxx/xxxx.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 127.0.0.1:10809

看起来像是代理出了问题,直接使用网页是可以连接到 github 的

1966 次点击
所在节点    程序员
14 条回复
Rache1
84 天前
所以你的 10809 端口这个代理有在正常工作么,如果有的话,更新一下你的订阅试试?如果没有,那清理掉代理试试?
404www
84 天前
@Rache1 有的,v2rayn 是启动了的
404www
84 天前
10809 端口的代理是正常工作的,我在 git 中测试`curl -x http://127.0.0.1:10809 -I https://www.google.com` 返回结果正确
yjxjn
84 天前
换 fastgithub 就行了,之前我的 git 也不稳定。懒得去深究端口问题了。
apuslilie
84 天前
gitconfig 试一下配置成 socks5 代理?
Rache1
84 天前
@404www #2 看看 V2Ray N 的日志上有什么报错没,另外确认一下,在浏览器上访问 GitHub 时,走代理了吗,因为 GitHub 有的时候还是能够直连的,有可能你浏览器访问的时候没走到代理,终端又走到了,
yb2313
84 天前
直接开 tun 模式, 给它惯的😡
darkengine
84 天前
设置一下 shell 的 proxy
StarUDream
84 天前
```
Host github.com
User git
HostName ssh.github.com
Port 443
ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7890 %h %p
```

配置一下 `HostName ssh.github.com` 就可以了
eaststarpen
84 天前
https://hellodk.cn/post/975

我珍藏的 CLI github 代理指南

p.s. 还是透明代理好用
epiphyllum
84 天前
当你配置的代理以`https://`开头时,git 会首先使用 TLS 连接这个代理服务器。
例如,假设我使用了以下命令配置代理:
`export HTTPS_PROXY=https://127.0.0.1:10809`
`git config --global https.proxy https://127.0.0.1:10809`
在 git 发起请求时抓包看一下,可见 git 给 HTTP 代理发了一个 TLS Client Hello 。v2rayn 日志也提示收到一堆非 HTTP/1.1 的二进制,Git 也返回楼主遇到的同款错误。

而 v2rayn (包括 xray/v2fly/sing-box 等)代理软件显然不会自己给 127.0.0.1 签一个 TLS 证书(毕竟麻烦&没必要),它们开放出来的、用于本地访问的 HTTP 代理是不支持像各种网站服务器那样接收 HTTPS/TLS 连接的。


解决方法:
将"https://"替换成"http://",或者配置 socks5 代理。


这里有几个容易混淆的点:

1. HTTPS_PROXY 或 https.proxy 并不是说这里必须要填一个 HTTPS 代理,它的意思是“指定访问 HTTPS 的服务时所用的代理”。
同理,HTTP_PROXY 或 http.proxy 的意思是“访问未加密的 HTTP 服务时所用的代理”

2. 在此场景中"https://"开头的代理和另一个概念(例如:“xx 免费代理”“全球开放代理”那些网站/场景下所说的“HTTPS 代理”)是不一样的:
- 这里提到的"https://"开头的代理需要客户端用 TLS 连接
- 那些 xx 网站等场景下经常说的 HTTPS 代理指的是:支持"CONNECT"这一 HTTP 请求方法的、基于 HTTP 协议的代理;
- (因为当年有好些“普通 HTTP 代理”只支持或开放 GET 、POST 等方法,访问"https://"网站时 TLS/SSL 加密解密由代理服务器处理,代理服务器能看到全部明文
-( “CONNECT 方法可用于访问使用 TLS/HTTPS 的网站,它实际上提供了一个中继 TCP 流的隧道”
itning
84 天前
@epiphyllum #11 👍
Nile20
84 天前
配置~/.ssh/config 文件,为 ssh 启用代理。linux 的写法参考 StarUDream 的回答,Windows 的写法如下


Host github.com
ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -H localhost:10809 %h %p
404www
84 天前
@epiphyllum 感谢大佬,我试一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1065845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX