我在学习spring cloud,正在配置spring config配置中心,但是每到获取github的config更新的时候就会出错:
- Failed to connect to github.com port 443:connection timed out
- cannot open git-upload-pack
- Could not fetch remote for main remote:https://github.com/Orisland/springcloud-config.git 无法更新config配置
- 301 Moved Permanently
代理有开,外网也能正常访问,在Chrome访问github均正常且走了正常的访问流量,同时,idea,git,均也设置了代理端口,但是无论如何,种种报错都在一直告诉我:你没开代理,要么你代理坏了。
于是我翻来覆去找了各种方法,均以失败告终,直到,我想到一个问题,既然我在学springcloud,我给idea设置了代理,但是并没有人告诉我说正在运行的springboot程序也执行了idea的代理设置,并没有给springboot程序做过任何设置。
这一想法直接救活我,但是很遗憾我已经花了一晚上和一上午的时间了,沉没成本太高了。
于是问题迎刃而解。
这里罗列出我对上述问题的综合解决方案,以方便看到这篇博文的人避免花费大量的时间在这种毫无意义的行为上。
注意,以下解答中的端口7890为我的代理端口,若的你的代理软件为clash,则无需修改,否则需要根据本机的代理端口修改。以及确保,你的代理可以正常工作。
如何确认代理正常?
第一二三条问题的解决方案
- Failed to connect to github.com port 443:connection timed out
- cannot open git-upload-pack
- Could not fetch remote for main remote:https://github.com/Orisland/springcloud-config.git 无法更新config配置
这个问题出现在git的push过程中,以及springboot 在尝试获取配置中的github仓库中的文件时产生。
解决方案:
-
push问题,git设置代理
//使用cmd或git Bash输入如下指令 git config --global https.proxy http://127.0.0.1:7890 git config --global https.proxy https://127.0.0.1:7890 git config --global http.proxy 'socks5://127.0.0.1:7890' git config --global https.proxy 'socks5://127.0.0.1:7890' // 取消代理方式 git config --global --unset http.proxy git config --global --unset https.proxy //输入完成后可以使用如下指令查看是否配置完成 git config --global -l
-
springboot应用本身没有设置代理,无法更新github仓库配置,频繁报错。
//为springboot启动添加配置 -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=7890 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=7890 配置位置为:idea->Run->Edit Configuration -> 找到需要开启的组件 -> 在右侧VM options:选项框中粘贴上面的代码,重启应用。
重启应用后问题解决,springboot应用可以正常的使用代理更新github仓库中的配置了。
第四条解决方案
- 301 Moved Permanently
出现该问题的原因在于我乱改github的仓库地址,将https修改为http,导致出现该错误,这种操作代理也无济于事,必须改回https。
- 错误:http
- 正确:https
顺带一提tips
顺带提一嘴,SpringCloudConfig的JSchException: Auth fail。
不要用ssh链接了,换成https吧。
例如原仓库ssh链接:git@github.com:Orisland/JMiraiFrame.git
改为https:https://github.com/Orisland/JMiraiFrame.git
公开的不需要再yml里设置username和password,但是私有的库需要设置。
这里不提供ssh的连接方式,有需要请谷歌自行解决。
注意有些老教程有坑,github为了表明自己没有种族歧视立场把默认的master分支改成main了,有些教程默认还是master要手动改成main,或者自己新建master分支。
因为master似乎是过去时期黑人奴隶称呼奴隶主的方式或者代称,没有仔细了解过。
反正没什么人看,就当学习过程中的记录贴。
2022年3月16日16:27:17