解决在控制台中使用git 连接失败或443
443的原因是,命令行或wsl中并不走window的全局代理。嗯,全局却不包括控制台,说来话长但实际就是这样的。
问题一、为命令行或wsl终端设置代理
解决的方法就是给终端或叫控制台添加代理设置,这样能解决443的问题。7890是代理软件的代理端口,比如clash。如果你用socket5不用http代理,你就点开clash采用混合配置,这样就会都用一个端口,而不是http,socket5分别采用不同的端口。
Gitbash代理
export http_proxy=http://127.0.0.1:7890
export https_proxy=https://127.0.0.1:7890
CMD代理
set http_proxy=http://127.0.0.1:7890
set https_proxy=https://127.0.0.1:7890
Wsl代理
wsl不走127.0.0.1得获取到虚拟机的ip,可以用一个shell脚本来解决。
source /data/Tools/proxy.sh set
问题二、端口冲突,搜索遍全网也没找到正确方法或思路
有的人遇到本来用得好好的,也能在控制台 git clone,curl或wget国内不能访问的网站都没问题。但某一天不知道怎么的,就报:
可以发现用 source /data/Tools/proxy.sh test 测试是可以访问国外的google等网站的。但git clone却不行。
这其实是你可能没注意,在wsl中有时候是在普通账户下,有时候进到了root账户下,执行了
source /data/Tools/proxy.sh set。之后在测试代理时,又换了代理地址或端口。
这样在不同的账户下采用了同样的端口,但ip地址不同的代理设置,产生了端口冲突。
你进入到不同账户的用户目录 cd ~
打开 .gitconfig文件,和用 env | grep -i proxy 命令查看,就能发现端口冲突的出处!
解决办法:把不同账号下export和 gitconfig设置的代理都删除。
遇到冲突了,就用同一个proxy.sh文件,把不使用代理的账号下 source /data/Tools/proxy.sh unset删除代理。在你要使用代理的账号下重新执行 source /data/Tools/proxy.sh set