这可能只是问题的一部分。
其他https网站怎么样?
你是如何连接到互联网的?
你的git副本可以通过VPN访问吗?
为什么我要问?我遇到了同样的问题:
Git在运行Windows 10 Hyper-X托管的Ubuntu 22.04虚拟机中使用。 VM通过默认开关(NAT)连接到Internet,并共享主机的OpenConnect VPN连接。
有一天,git无法从位于私有网络中且可通过VPN访问的远程存储库中提取。症状与您的相似:
握手失败
经过一些调查,我发现了以下事实:
所有可通过VPN访问的https资源都可以在guest的默认预设下ping通,但无法建立与它们的Https连接
其他未受VPN保护的https资源是可达的,正常工作
当尝试使用Firefox浏览器连接到https资源时,在OpenConnect-GUI VPN客户端日志中发现了一些错误报告:
OpenConnect Log window
之后,我尝试追踪到远程 Git 存储库的路径:
tracepath-screenshot
developer@Ubuntu-VM:~$ tracepath **.**.167.240 -n
1?: [LOCALHOST] pmtu 1500
1: 172.18.224.1 0.485ms
1: 172.18.224.1 0.386ms
2: 172.18.224.1 0.227ms pmtu 1290
2: **.**.254.9 38.242ms
3: **.**.30.14 32.438ms
4: **.**.167.240 32.136ms reached
Resume: pmtu 1290 hops 4 back 4
我注意到屏幕右侧有一些“pmtu”字符串和最后的“Resume”提示。因此,我决定检查我的网络接口的MTU预设值:
ifconfig-screenshot。
developer@Ubuntu-VM:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.227.200 netmask 255.255.240.0 broadcast 172.18.239.255
inet6 fe80::d1b:9e02:3919:d75b prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:19:76:00 txqueuelen 1000 (Ethernet)
RX packets 56234 bytes 311928403 (311.9 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13927 bytes 1148583 (1.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如您所见,接口eth0的MTU为1500(...当前VPN隧道太大了)。
当我将eth0的MTU更改为1290时,如
tracepath 实用程序建议的那样:
sudo ifconfig eth0 mtu 1290
我的问题已经解决了。(MTU 还必须在 Ubuntu 网络设置页面中更改,以实现永久生效)
受益!
还可以阅读:
Windows WSL: Git and gnutls_handshake() failed。