拉取github项目的时候,git clone https 失败,需要设置 wsl2 使用 windows 上的代理

前言

在使用 git 拉取项目的时候,因为一直使用 git@xxxx 链接来 clone。后续在更新某一项目的 submodule 的时候,发现使用 http 方式不能拉取下来,但是 windows 可以,怀疑是代理问题,后续收集了一波资料后解决了,在此记录下。
以下错误信息都可能需要设置代理:

  1. fatal: unable to access ‘https://github.com/xxx/xxx.git/’: Empty reply from server
  2. gnutls_handshake() failed: The TLS connection was non-properly terminated

以下解决办法在电脑重启后需要重新设置一次,因为 wsl2 ip会发生变化,还有就是对 windows 端口协议保护重启后会被重新设置

1. 查看 windows 当前和 wsl 处于同一网段的 ip

在 wsl 的控制台输入

> echo "Host ip: $(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')"
Host ip: 172.17.122.209

2. 设置允 windows 防火墙,允许 wsl 访问

在管理员模式的 PowerShell 输入以下命令

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

3. 设置防火墙对代理的连接协议放行

拉取github项目的时候,git clone https 失败,需要设置 wsl2 使用 windows 上的代理_第1张图片
拉取github项目的时候,git clone https 失败,需要设置 wsl2 使用 windows 上的代理_第2张图片
拉取github项目的时候,git clone https 失败,需要设置 wsl2 使用 windows 上的代理_第3张图片

将 vEthernet(WSL)前面的勾去掉

4. 查看代理端口

拉取github项目的时候,git clone https 失败,需要设置 wsl2 使用 windows 上的代理_第4张图片

拉取github项目的时候,git clone https 失败,需要设置 wsl2 使用 windows 上的代理_第5张图片

5. 设置 git 的 http 代理

git config --global http.https://github.com.proxy http://172.17.122.209:7890
git config --global https.https://github.com.proxy http://172.17.122.209:7890

你可能感兴趣的:(工具,github,git,https)